[Pythonmac-SIG] py2app error

Nathan Lemoine lemoine.nathan at gmail.com
Wed Jul 28 18:38:07 CEST 2010


Hey everyone,

I've been trying to bundle my script into a standalone Mac application  
using the most updated version of py2app and Python 2.5 on OSX 10.5.8.  
I'm getting error messages during the compile procedure and I haven't  
come across a way to fix it. So I can run the py2applet and generate  
the setup.py file easily.

Here's the output when I attempt python setup.py py2app:

Traceback (most recent call last):
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
build_app.py", line 604, in _run
     self.run_normal()
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
build_app.py", line 675, in run_normal
     self.create_binaries(py_files, pkgdirs, extensions, loader_files)
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
build_app.py", line 739, in create_binaries
     dry_run=self.dry_run)
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
util.py", line 376, in byte_compile
     if force or newer(mod.filename, cfile):
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
util.py", line 172, in newer
     msource = get_mtime(source)
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
util.py", line 164, in get_mtime
     info = zf.getinfo(rest)
   File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/ 
python2.5/zipfile.py", line 462, in getinfo
     return self.NameToInfo[name]
KeyError: 'pyglet/__init__.pyc'
 > /System/Library/Frameworks/Python.framework/Versions/2.5/lib/ 
python2.5/zipfile.py(462)getinfo()
-> return self.NameToInfo[name]


So the KeyError would tell me that py2app does not have pyglet in its  
dictionary, so that it doesn't know where to search to find pyglet,  
correct? When I go into Python and find the path for the pyglet module  
(pyglet.__path__), I receive ['/Library/Python/2.5/site-packages/ 
pyglet-1.1.4-py2.5.egg/pyglet'].

Do I have to tell py2app specifically where to find the pyglet module?  
If so, how do I do that.

Also, whenever I run py2app in alias mode, I get a completely  
different error:

sudo python py2app setup.py -A (sudo is run because I get a permission  
denied error if I don't use it(

Traceback (most recent call last):
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
build_app.py", line 602, in _run
     self.run_alias()
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
build_app.py", line 548, in run_alias
     dst = self.build_alias_executable(target, target.script)
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
build_app.py", line 1145, in build_alias_executable
     appdir, resdir, plist = self.create_bundle(target, script)
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
build_app.py", line 1131, in create_bundle
     use_runtime_preference=use_runtime_preference
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
build_app.py", line 1120, in create_appbundle
     extension=self.extension,
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
create_appbundle.py", line 34, in create_appbundle
     copy(srcmain, destmain)
   File "/Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/ 
util.py", line 233, in mergecopy
     return macholib.util.mergecopy(src, dest)
   File "build/bdist.macosx-10.5-i386/egg/macholib/util.py", line 111,  
in mergecopy
     copy2(src, dest)
   File "build/bdist.macosx-10.5-i386/egg/macholib/util.py", line 43,  
in copy2
     shutil.copy2(fsencoding(src), fsencoding(dst))
   File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/ 
python2.5/shutil.py", line 91, in copy2
     copyfile(src, dst)
   File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/ 
python2.5/shutil.py", line 46, in copyfile
     fsrc = open(src, 'rb')
IOError: [Errno 2] No such file or directory: '/Library/Python/2.5/ 
site-packages/py2app-0.5-py2.5.egg/py2app/apptemplate/prebuilt/main- 
i386'
 > /System/Library/Frameworks/Python.framework/Versions/2.5/lib/ 
python2.5/shutil.py(53)copyfile()
-> fsrc.close()

I went into the Python Framework folder and the only prebuilt  
executeable in there is 32bit one, there isn't a main-i386 file. Am I  
missing a file?

Any help is appreciated

Nathan Lemoine



More information about the Pythonmac-SIG mailing list