]> granicus.if.org Git - python/commitdiff
M PyShell.py
authorKurt B. Kaiser <kbk@shore.net>
Sat, 21 Dec 2002 21:03:06 +0000 (21:03 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Sat, 21 Dec 2002 21:03:06 +0000 (21:03 +0000)
M idle
M setup.py

To be able to run from the source directory or from an installed version
of IDLE, and also to allow the subprocess to find run(), Python needs to
have the idlelib package on its path.

1. Modify setup.py to supply a .pth file living at same level as idlelib
2. Move boolcheck to PyShell.py
3. Remove boolcheck and path setting code from the "idle" script

Lib/idlelib/PyShell.py
Lib/idlelib/idle
Lib/idlelib/setup.py

index e13bafcc80f4797f6cc52da9d3d22808a1f20aca..2abde13316ad3d7af2bde6f29769e1e435ba7107 100644 (file)
@@ -29,6 +29,8 @@ import idlever
 import rpc
 import RemoteDebugger
 
+import boolcheck
+
 IDENTCHARS = string.ascii_letters + string.digits + "_"
 
 # Change warnings module to write to sys.__stderr__
index d5aab04bc4c6a39ce953e1f879b1007732a9eb3c..08af399b2c82d1771fa2f3b7c4f419e19e772ce8 100755 (executable)
@@ -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()
index 2305adc3f3e5f865970485529ed6b895a39a4447..02fd99745dcc94f07fa827be5a87c9d32a125487 100644 (file)
@@ -31,6 +31,15 @@ txt_files = ['extend.txt', 'help.txt', 'CREDITS.txt', 'LICENSE.txt']
 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 @@ class IDLE_Builder(build_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