From: Tony Lownds Date: Sun, 29 Sep 2002 00:34:10 +0000 (+0000) Subject: Finding a suitable interpreter to spawn needed tweaking on the Mac X-Git-Tag: v2.3c1~3946 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f2324b9e8964a7aef964ae6168827ad300f920d6;p=python Finding a suitable interpreter to spawn needed tweaking on the Mac --- diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index 3a819a8317..195942fd25 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -160,12 +160,25 @@ class ModifiedInterpreter(InteractiveInterpreter): rpcclt = None rpcpid = None - def spawn_subprocess(self): - w = ['-W' + s for s in sys.warnoptions] - args = [sys.executable] + w + ["-c", "__import__('run').main()", - str(self.port)] + def spawn_subprocess(self): + w = ['-W' + s for s in sys.warnoptions] + args = [self.find_executable()] + w \ + + ["-c", "__import__('run').main()", str(self.port)] self.rpcpid = os.spawnv(os.P_NOWAIT, args[0], args) + def find_executable(self): + if sys.platform == 'darwin' and sys.executable.count('.app'): + # On Mac OS X, avoid calling sys.executable because it ignores + # command-line options (sys.executable is an applet) + # + # Instead, find the executable by looking relative to + # sys.prefix. + executable = os.path.join(sys.prefix, 'Resources', + 'Python.app', 'Contents', 'MacOS', 'python') + return executable + else: + return sys.executable + def start_subprocess(self): addr = ("localhost", self.port) self.spawn_subprocess()