diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index e13bafcc80f..2abde13316a 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -29,6 +29,8 @@ import rpc import RemoteDebugger +import boolcheck + IDENTCHARS = string.ascii_letters + string.digits + "_" # Change warnings module to write to sys.__stderr__ diff --git a/Lib/idlelib/idle b/Lib/idlelib/idle index d5aab04bc4c..08af399b2c8 100755 --- a/Lib/idlelib/idle +++ b/Lib/idlelib/idle @@ -1,33 +1,17 @@ #! /usr/bin/env python -# Add IDLE.app/Contents/Resources/idlelib to path. -# __file__ refers to this file when it is used as a module, sys.argv[0] -# refers to this file when it is used as a script (pythonw macosx_main.py) -import sys -from os.path import split, join -try: - __file__ -except NameError: - __file__ = sys.argv[0] -idlelib = join(split(__file__)[0], 'idlelib') -if os.path.isdir(idlelib): - sys.path.append(idlelib) +import sys as _sys -# Make sure True, False, bool() builtins exist. -# - preserves 2.2 compatibility - 2.2.1 includes bool, 2.2 does not. -# - important for Mac OS X because it ships python 2.2 -import boolcheck - -# see if we are being asked to execute the subprocess code -if '-p' in sys.argv: - # run expects only the port number in sys.argv - sys.argv.remove('-p') +# See if we are being asked to execute the subprocess code +if '-p' in _sys.argv: + # run expects only the port number in _sys.argv + _sys.argv.remove('-p') # this module will become the namepsace used by the interactive # interpreter; remove all variables we have defined. - del sys, __file__, boolcheck, split, join + del _sys __import__('run').main() else: - # start the application. + # Start the IDLE GUI import PyShell PyShell.main() diff --git a/Lib/idlelib/setup.py b/Lib/idlelib/setup.py index 2305adc3f3e..02fd99745dc 100644 --- a/Lib/idlelib/setup.py +++ b/Lib/idlelib/setup.py @@ -31,6 +31,15 @@ txt_files += ['config-extensions.def', 'config-highlight.def', 'config-keys.def', 'config-main.def'] Icons = glob.glob1("Icons","*.gif") + +# Create a .pth file to live in site-packages; Python will add IDLE to +# sys.path: + +pathfile = idle_name + ".pth" +pfile = open(pathfile, 'w') +pfile.write(pkgname +'\n') +pfile.close() + class IDLE_Builder(build_py): def get_plain_outfile(self, build_dir, package, file): # like get_module_outfile, but does not append .py @@ -54,6 +63,12 @@ def run(self): self.mkpath(dir) self.copy_file(os.path.join("Icons", name), outfile, preserve_mode = 0) + # Copy the .pth file to the same level as the package directory + outfile = self.get_plain_outfile(self.build_lib, [], pathfile) + dir = os.path.dirname(outfile) + self.mkpath(dir) + self.copy_file(os.path.join(package_dir, pathfile), outfile, + preserve_mode=0) def get_source_files(self): # returns the .py files, the .txt and .def files, and the icons