Ошибка Py2app в модульном графе - PullRequest
1 голос
/ 17 августа 2010

Несколько недель назад я смог создавать приложения с помощью py2app. Я просто попробовал еще раз, и во время процесса сборки меня выгружают в сеанс pdb с трассировкой стека ниже.

Похоже, что проблема в импорте с modulegraph.py, но у меня самая последняя версия обновления.

Это происходит даже с минимальным тестовым файлом без импорта, кроме sys, и с использованием настроек, создаваемых py2applet.

Я также убедился, что Python, на котором я запускаю py2app, является версией / Library, а не версией / System.

Есть идеи?

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)):

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Это может показаться проблемой, отмеченной здесь , и должна была быть исправлена ​​в последующем выпуске 0.8 modulegraph . Убедитесь, что ваша версия modulegraph действительно обновлена; путь для него немного странный: build/bdist.macosx-10.6-universal/egg/modulegraph. Похоже, вы используете личную копию, а не установленную как обычный пакет сайта, такой как py2app (/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages).

0 голосов
/ 22 января 2015

У меня была эта проблема, но принятый ответ не решил ее для меня.

Я нашел От скрипта Python до портативного приложения Mac с py2app и выкладываю здесь сжатое решение:

Отредактируйте файл, в котором произошла эта ошибка (для меня она была внутри папки виртуальной среды с именем myenv), по адресу: myenv / lib / python2.7 / site-packages / py2app / recipes/virtualenv.py 1

myenv/lib/python2.7/site-packages/py2app/recipes/virtualenv.py

Найдите функции scan_code или load_module и добавьте подчеркивание перед ними _scan_code и _load_module.Создайте заново ваше приложение, оно должно работать сейчас

Я знаю, что это не идеально, но я просто хотел пока иметь прототип, так что это будет работать.:)

...