[Pythonmac-SIG] py2app: how to exclude pygame_icon.icns ?

Joel Gluck joelgluck at yahoo.com
Sat Jan 3 19:43:54 CET 2009


Hi all --

It seems I have solved my frameworks problem for now -- I simply  
copied all the frameworks I needed and manually stuck them inside my  
app (deleting all the unnecessary header folders). Not an automated  
process, but at least my python app now seems to run on other Macs.

Also, I solved the pygame_icon problem by changing permissions (sudo  
chmod 777) on the "pygame" folder inside python.framework and  
overwriting pygame_icon.icns and pygame_icon.tiff (the .tiff file was  
the real culprit, I discovered) with my own version (same filenames,  
different contents).

Thank you, Chris VB, Tom W, and Bob I!

-- Joel


On Jan 2, 2009, at 11:31 PM, Bob Ippolito wrote:

> Unknown load command: 27 means it's seeing a load command (low level
> Mach-O stuff) that it doesn't understand, which is reasonable because
> I don't think I've updated the code since 10.4 or so and there are
> probably some new ones.
>
> I only really worked on py2app, etc.when I was building Mac apps, and
> I haven't in a few years. I spend my open source time working on more
> server-side stuff.
>
> On Fri, Jan 2, 2009 at 8:17 PM, Joel Gluck <joelgluck at yahoo.com>  
> wrote:
>> Hi Bob,
>> Thanks for pointing me to the right place -- I was able to replace  
>> the
>> pygame icon with my own as a temporary fix.
>> I have two more questions (I know, you're not supporting py2app  
>> anymore, but
>> you're basically the guru of this code so I thought I'd at least  
>> try to go
>> directly to the source...!):
>> 1) My built .app is missing frameworks pygame depends on. I'm  
>> trying to
>> include them by using py2app's "frameworks" option, but it doesn't  
>> seem to
>> work as advertised -- no matter how many ways I devise to give it a
>> "comma-separated list of additional frameworks", it only adds the  
>> first
>> framework in the list. (This is true whether from the command line  
>> or within
>> the setup file as a py2app option.) Using the frameworks option  
>> multiple
>> times does not seem to work. Is there a secret method? Currently  
>> I'm doing:
>> APP = ['savi.py']
>> DATA_FILES = ['../gameplay', 'data', 'en']
>> OPTIONS = { 'argv_emulation': True,
>> "iconfile": "mac_savi_icon.icns",
>> "dist_dir":"mac_dist",
>> "bdist_base":"mac_build",
>>  "frameworks": ["SDL_image.framework", "SDL_ttf.framework",
>> "SDL_mixer.framework", "SDL.framework"],
>> "includes":["Numeric"] }
>> setup( app=APP,
>> data_files=DATA_FILES,
>> options={'py2app': OPTIONS},
>> setup_requires=['py2app'],
>> version="0.2.3" )
>> 2) When I run "python setup.py py2app", it seems to run fine for a  
>> while but
>> then hits a snag -- here's a traceback:
>> copying /Library/Frameworks/SDL.framework/Versions/A/SDL ->
>> /Users/joel/Documents/OT Video Games/SAVI Learning Tool Prototype ver
>> 2.3/mac_dist/savi.app/Contents/Frameworks/SDL.framework/Versions/A
>> linking /Users/joel/Documents/OT Video Games/SAVI Learning Tool  
>> Prototype
>> ver 2.3/mac_dist/savi.app/Contents/Frameworks/SDL.framework/ 
>> Versions/Current
>> -> A
>> Traceback (most recent call last):
>>  File
>> "/Users/joel/Library/Python/2.5/site-packages/py2app-0.3.6- 
>> py2.5.egg/py2app/build_app.py",
>> line 548, in _run
>>    self.run_normal()
>>  File
>> "/Users/joel/Library/Python/2.5/site-packages/py2app-0.3.6- 
>> py2.5.egg/py2app/build_app.py",
>> line 619, in run_normal
>>    self.create_binaries(py_files, pkgdirs, extensions, loader_files)
>>  File
>> "/Users/joel/Library/Python/2.5/site-packages/py2app-0.3.6- 
>> py2.5.egg/py2app/build_app.py",
>> line 731, in create_binaries
>>    mm.mm.run_file(fmwk)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachOGraph.py",  
>> line 68,
>> in run_file
>>    self.scan_node(m)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachOGraph.py",  
>> line 91,
>> in scan_node
>>    m = self.load_file(filename, caller=node)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachOGraph.py",  
>> line 78,
>> in load_file
>>    return self.load_file(newname, caller=caller)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachOGraph.py",  
>> line 80,
>> in load_file
>>    m = self.createNode(MachO, name)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/ 
>> MachOStandalone.py", line
>> 23, in createNode
>>    res = super(FilteredMachOGraph, self).createNode(cls, name)
>>  File "build/bdist.macosx-10.3-i386/egg/altgraph/ObjectGraph.py",  
>> line 148,
>> in createNode
>>    m = cls(name, *args, **kw)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachO.py", line  
>> 61, in
>> __init__
>>    self.load(file(filename, 'rb'))
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachO.py", line  
>> 71, in
>> load
>>    self.load_fat(fh)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachO.py", line  
>> 82, in
>> load_fat
>>    self.load_header(fh, arch.offset, arch.size)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachO.py", line  
>> 106, in
>> load_header
>>    hdr = MachOHeader(self, fh, offset, size, magic, hdr, endian)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachO.py", line  
>> 146, in
>> __init__
>>    self.load(fh)
>>  File "build/bdist.macosx-10.3-i386/egg/macholib/MachO.py", line  
>> 178, in
>> load
>>    raise ValueError("Unknown load command: %d" % (cmd_load.cmd,))
>> ValueError: Unknown load command: 27
>>> /Users/joel/Documents/OT Video Games/SAVI Learning Tool Prototype  
>>> ver
>>> 2.3/build/bdist.macosx-10.3-i386/egg/macholib/MachO.py(178)load()
>> (Pdb) cont
>> I've tried using the debugger to determine what's going on but it  
>> remains a
>> mystery. (OTOH, if I type "cont",  it immediately ends the script and
>> returns to the Unix prompt.) Any thoughts?
>> Thanks for any help you're willing to provide -- from your sunny  
>> retirement
>> as py2app maintainer!
>> -- Joel, working desperately on a deadline...
>>
>>




More information about the Pythonmac-SIG mailing list