tags:

views:

29

answers:

1

A few weeks ago, I was able to build Apps using py2app. I just tried it again and during the build process, I get dumped into a pdb session with the stack trace below.

It appears to be in import problem with modulegraph.py but I have the most update to date version.

This happens even with a bare minimum test file with no imports other than sys and using the setup that py2applet creates.

I've also made sure that the python I'm running py2app with is the /Library version, not the /System version.

Any Ideas?

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/py2app-0.4.3-py2.6.egg/py2app/build_app.py", line 589, in _run
    self.run_normal()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/py2app-0.4.3-py2.6.egg/py2app/build_app.py", line 641, in run_normal
    mf = self.get_modulefinder()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/py2app-0.4.3-py2.6.egg/py2app/build_app.py", line 549, in get_modulefinder
    debug=debug,
  File "build/bdist.macosx-10.6-universal/egg/modulegraph/find_modules.py", line 255, in find_modules
    find_needed_modules(mf, scripts, includes, packages)
  File "build/bdist.macosx-10.6-universal/egg/modulegraph/find_modules.py", line 180, in find_needed_modules
    mf.import_hook(mod[:-2], None, ['*'])
  File "build/bdist.macosx-10.6-universal/egg/modulegraph/modulegraph.py", line 404, in import_hook
    modules.update(self.ensure_fromlist(m, fromlist))
  File "build/bdist.macosx-10.6-universal/egg/modulegraph/modulegraph.py", line 472, in ensure_fromlist
    fromlist.update(self.find_all_submodules(m))
  File "build/bdist.macosx-10.6-universal/egg/modulegraph/modulegraph.py", line 496, in find_all_submodules
    for (path, mode, typ) in ifilter(None, imap(moduleInfoForPath, names)):
NameError: global name 'ifilter' is not defined
> /Users/justin/Desktop/test/build/bdist.macosx-10.6-universal/egg/modulegraph/modulegraph.py(496)find_all_submodules()
-> for (path, mode, typ) in ifilter(None, imap(moduleInfoForPath, names)):
+1  A: 

That would appear to be a problem noted here and should have been fixed in the subsequent 0.8 release of modulegraph. Make sure your version of modulegraph is really up-to-date; the path is a little odd for it: build/bdist.macosx-10.6-universal/egg/modulegraph. Looks like you are using a private copy rather than one installed as a normal site-package like py2app (/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages).

Ned Deily