[Pythonmac-SIG] Re: Pythonmac-SIG Digest, Vol 20, Issue 24 (original) (raw)
Brian Lenihan brian_l at mac.com
Tue Dec 21 13:22:17 CET 2004
- Previous message: [Pythonmac-SIG] Read Strings from Resources
- Next message: [Pythonmac-SIG] Re: Pythonmac-SIG Digest, Vol 20, Issue 24
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
>> 208-186-56-189:/sw/bin jis$ cat /sw/bin/idle2.3 >> #!/sw/bin/python
Which python is first on your path? IIRC there is a feature in darwin that wreaks havoc with the setup code in python that finds the correct prefix (and library). This ends up always picking the prefix for the first python on the path. Darwinports contains a patch for that. Using "#!/usr/bin/env /sw/bin/python" should also work.
The "feature" is that OS X does not include the full path to the
executable in argv[0]. Using #!/usr/bin/env /path/to/python helps.
Especially in the really annoying case where command line scripts work,
but scripts launched from applications don't.
Which reminds me, both pyobjc's and py2app's bdist_mpkg also could be tweaked so preflight shell scripts won't fail to run on some systems:
--- pyobjc_mpkg.py (revision 1287) +++ pyobjc_mpkg.py (working copy) @@ -13,7 +13,7 @@ from bdist_mpkg import tools
JUNK = set(['.DS_Store', '.gdb_history', 'build', 'dist', 'NonFunctional']) -JUNK_EXTS = set(['.pbxuser', '.pyc', '.pyo']) +JUNK_EXTS = set(['.pbxuser', '.pyc', '.pyo', '.swp']) def skipjunk(fn, junk=JUNK, junk_exts=JUNK_EXTS): if not skipscm(fn): return False @@ -23,7 +23,8 @@ return False return True
-PREFLIGHT_RM = """#!/usr/bin/env python
+PREFLIGHT_RM = """
+#!/usr/bin/env %(sys_executable_path)s
import shutil, os
for fn in %(files)r:
if os.path.isdir(fn):
@@ -31,6 +32,7 @@
elif os.path.exists(fn):
os.unlink(fn)
"""
+
def run_setup(*args, **kwargs):
import distutils.core
d = {
@@ -45,10 +47,10 @@
for k,v in d.iteritems():
setattr(distutils.core, k, v)
- def write_preflight_rm(path, files): fobj = file(path, 'w')
- fobj.write(PREFLIGHT_RM % dict(files=map(os.path.normpath, files)))
- fobj.write(PREFLIGHT_RM % dict(sys_executable_path=sys.executable,
files=map(os.path.normpath, files))) fobj.close() os.chmod(path, 0775)
-------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2359 bytes Desc: not available Url : http://mail.python.org/pipermail/pythonmac-sig/attachments/20041221/0f433e0d/smime.bin
- Previous message: [Pythonmac-SIG] Read Strings from Resources
- Next message: [Pythonmac-SIG] Re: Pythonmac-SIG Digest, Vol 20, Issue 24
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]