summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2002-12-24 06:36:19 (GMT)
committerKurt B. Kaiser <kbk@shore.net>2002-12-24 06:36:19 (GMT)
commitf4f427681507371f70ef904a248420ef15dba2a8 (patch)
tree147b87610fef611eb57db81a4a34c49781c45ab7
parent12bf339aea9c787f7ce655d613b8898f7511c7db (diff)
downloadcpython-f4f427681507371f70ef904a248420ef15dba2a8.zip
cpython-f4f427681507371f70ef904a248420ef15dba2a8.tar.gz
cpython-f4f427681507371f70ef904a248420ef15dba2a8.tar.bz2
M PyShell.py
M idle M idle.py M idle.pyw M setup.py Switch back to installing IDLE as a package. The IDLE GUI and the subprocess will both attempt to start up via the package mechanism, but if IDLE is not yet installed it is possible to run by calling python idle.py in the IDLE source directory, or to add the source directory to sys.path. One advantage of doing it this way is IDLE stays off sys.path. Developed in collaboration with Tony Lownds.
-rw-r--r--Lib/idlelib/PyShell.py12
-rwxr-xr-xLib/idlelib/idle9
-rw-r--r--Lib/idlelib/idle.py9
-rw-r--r--Lib/idlelib/idle.pyw9
-rw-r--r--Lib/idlelib/setup.py11
5 files changed, 35 insertions, 15 deletions
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index e3605ac..687b539 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -319,9 +319,15 @@ class ModifiedInterpreter(InteractiveInterpreter):
# XXX what about warnoptions?
return [sys.executable, '-p', str(self.port)]
else:
- w = ['-W' + s for s in sys.warnoptions]
- return [sys.executable] + w \
- + ["-c", "__import__('run').main()", str(self.port)]
+ w = ['-W' + s for s in sys.warnoptions]
+ # Maybe IDLE is installed and is being accessed via sys.path,
+ # or maybe it's not installed and the idle.py script is being
+ # run from the IDLE source directory.
+ if __name__ == 'idlelib.PyShell':
+ command = "__import__('idlelib.run').run.main()"
+ else:
+ command = "__import__('run').main()"
+ return [sys.executable] + w + ["-c", command, str(self.port)]
def start_subprocess(self):
addr = ("localhost", self.port)
diff --git a/Lib/idlelib/idle b/Lib/idlelib/idle
index 8638a16..131e8d3 100755
--- a/Lib/idlelib/idle
+++ b/Lib/idlelib/idle
@@ -1,4 +1,9 @@
#! /usr/bin/env python
-import PyShell
-PyShell.main()
+try:
+ import idlelib.PyShell
+ idlelib.PyShell.main()
+except:
+ # IDLE is not installed, but maybe PyShell is on sys.path:
+ import PyShell
+ PyShell.main()
diff --git a/Lib/idlelib/idle.py b/Lib/idlelib/idle.py
index 8638a16..131e8d3 100644
--- a/Lib/idlelib/idle.py
+++ b/Lib/idlelib/idle.py
@@ -1,4 +1,9 @@
#! /usr/bin/env python
-import PyShell
-PyShell.main()
+try:
+ import idlelib.PyShell
+ idlelib.PyShell.main()
+except:
+ # IDLE is not installed, but maybe PyShell is on sys.path:
+ import PyShell
+ PyShell.main()
diff --git a/Lib/idlelib/idle.pyw b/Lib/idlelib/idle.pyw
index 8638a16..131e8d3 100644
--- a/Lib/idlelib/idle.pyw
+++ b/Lib/idlelib/idle.pyw
@@ -1,4 +1,9 @@
#! /usr/bin/env python
-import PyShell
-PyShell.main()
+try:
+ import idlelib.PyShell
+ idlelib.PyShell.main()
+except:
+ # IDLE is not installed, but maybe PyShell is on sys.path:
+ import PyShell
+ PyShell.main()
diff --git a/Lib/idlelib/setup.py b/Lib/idlelib/setup.py
index 8a4ffa6..e10b3e8 100644
--- a/Lib/idlelib/setup.py
+++ b/Lib/idlelib/setup.py
@@ -46,14 +46,14 @@ class IDLE_Builder(build_py):
# Copies all .py files, then also copies the txt and gif files
build_py.run(self)
for name in txt_files:
- outfile = self.get_plain_outfile(self.build_lib, [], name)
+ outfile = self.get_plain_outfile(self.build_lib, [pkgname], name)
dir = os.path.dirname(outfile)
self.mkpath(dir)
self.copy_file(os.path.join(pkg_dir, name), outfile,
preserve_mode = 0)
for name in Icons:
outfile = self.get_plain_outfile(self.build_lib,
- ["Icons"], name)
+ [pkgname, "Icons"], name)
dir = os.path.dirname(outfile)
self.mkpath(dir)
self.copy_file(os.path.join("Icons", name),
@@ -71,11 +71,11 @@ class IDLE_Builder(build_py):
if not include_bytecode:
return outputs
for name in txt_files:
- filename = self.get_plain_outfile(self.build_lib, [], name)
+ filename = self.get_plain_outfile(self.build_lib, [pkgname], name)
outputs.append(filename)
for name in Icons:
filename = self.get_plain_outfile(self.build_lib,
- ["Icons"], name)
+ [pkgname, "Icons"], name)
outputs.append(filename)
return outputs
@@ -111,7 +111,6 @@ For further details, refer to idlefork.sourceforge.net.
cmdclass = {'build_py':IDLE_Builder,
'install_lib':IDLE_Installer},
package_dir = {pkgname: pkg_dir},
- extra_path = pkgname,
- py_modules = [f.split('.')[0] for f in glob.glob("*.py")],
+ packages = [pkgname],
scripts = [os.path.join(pkg_dir, idle_name)]
)