Несколько недель назад я смог создавать приложения с помощью 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)):
Это будет проблема, отмеченная здесь и должна была быть исправлена в следующем выпуске 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
).
Имел эту проблему, но принятый ответ не разрешил ее для меня.
Я нашел От Python script до портативного приложения Mac с py2app и помещаю здесь сконденсированное решение:
Отредактируйте файл, в котором была обнаружена эта ошибка (для меня это было в папке виртуальной среды по имени myenv): myenv/Library/python2.7/сайт-пакеты/py2app/Рецепты/virtualenv.py 1
myenv/lib/python2.7/site-packages/py2app/recipes/virtualenv.py
Найдите функции
scan_code
илиload_module
и добавьте перед ними знак подчеркивания,_scan_code
и_load_module
. Создайте снова свое приложение, оно должно работать сейчас
Я знаю, что это не идеально, но я просто хотел создать прототип, так что это будет сделано.:)