#! /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()
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
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