On 28 Jul, 2010, at 18:38, Nathan Lemoine wrote: > 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]
Could you create a small pyglet program with a setup.py that demonstrates the problem? py2app should be able to find packages used by your script, and even if it didn't find pyglet it shouldn't fail in this way. Is "/Library/Python/2.5/site-packages/pyglet-1.1.4-py2.5.egg" a file or a directory (both should work, but you never know)? > > > 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? You aren't missing a file, py2app doesn't have a main-i386 file. As a quick workaround you can copy /Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/apptemplate/prebuilt/main-fat to /Library/Python/2.5/site-packages/py2app-0.5-py2.5.egg/py2app/apptemplate/prebuilt/main-i386. I will tweak py2app to better handle this, that will be in the next release (0.5.2, hopefully later this week). Ronald
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG