mirror of
https://github.com/python/cpython.git
synced 2025-07-23 03:05:38 +00:00
Update way a subprocess is launched for Mac OS X.
Another applet mechanism has been developed for Python on Mac OS X and trying to use the -c "__import__('run').main()" trick is just not working. macosx_main.py is a new file which should be used as the startup file for Mac OS X applet bundles. This startup file understands a -p option, which when seen will start run.main(). When running as an applet, this seems like the best approach.
This commit is contained in:
parent
24475896dd
commit
f53dec2e4e
5 changed files with 107 additions and 16 deletions
46
Lib/idlelib/macosx_main.py
Normal file
46
Lib/idlelib/macosx_main.py
Normal file
|
@ -0,0 +1,46 @@
|
|||
"""IDLE.app
|
||||
|
||||
Installation:
|
||||
see the install_IDLE target in python/dist/src/Mac/OSX/Makefile
|
||||
|
||||
Usage:
|
||||
|
||||
1. Double clicking IDLE icon will open IDLE.
|
||||
2. Dropping file on IDLE icon will open that file in IDLE.
|
||||
3. Launch from command line with files with this command-line:
|
||||
|
||||
/Applications/Python/IDLE.app/Contents/MacOS/python file1 file2 file3
|
||||
|
||||
"""
|
||||
|
||||
# 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, isdir
|
||||
try:
|
||||
__file__
|
||||
except NameError:
|
||||
__file__ = sys.argv[0]
|
||||
idlelib = join(split(__file__)[0], 'idlelib')
|
||||
if isdir(idlelib):
|
||||
sys.path.append(idlelib)
|
||||
|
||||
# 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')
|
||||
|
||||
# this module will become the namepsace used by the interactive
|
||||
# interpreter; remove all variables we have defined.
|
||||
del sys, __file__, boolcheck, split, join
|
||||
__import__('run').main()
|
||||
else:
|
||||
# Load idlelib/idle.py which starts the application.
|
||||
import idle
|
Loading…
Add table
Add a link
Reference in a new issue