ope*_*nsw 3 python macos macports py2app
我有一些py2app的麻烦; 出于某种原因,对于我开发的所有脚本,我始终存在相同的错误.目前我正在使用最新的MacPorts版本,经过两天的测试后,我无法弄清楚出了什么问题.
py2app的setup.py文件之一是:
from setuptools import setup
APP = ['main.py']
OPTIONS = {'argv_emulation': True, 'includes': ['sip', 'PyQt4._qt', 'PyQt4.QtCore', 'PyQt4.QtGui'],
'excludes': ['PyQt4.QtDesigner', 'PyQt4.QtNetwork', 'PyQt4.QtOpenGL', 'PyQt4.QtScript', 'PyQt4.QtSql', 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml', 'PyQt4.phonon']}
setup(
app=APP,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
Run Code Online (Sandbox Code Playgroud)
这是日志:
python setup.py py2app
running py2app
creating /Users/opensw/SkyDrive/SISSA/Kymograph/build/bdist.macosx-10.6-intel/python2.7-standalone/app
creating /Users/opensw/SkyDrive/SISSA/Kymograph/build/bdist.macosx-10.6-intel/python2.7-standalone/app/collect
creating /Users/opensw/SkyDrive/SISSA/Kymograph/build/bdist.macosx-10.6-intel/python2.7-standalone/app/temp
creating build/bdist.macosx-10.6-intel/python2.7-standalone/app/lib-dynload
creating build/bdist.macosx-10.6-intel/python2.7-standalone/app/Frameworks
*** using recipe: virtualenv ***
WARNING: ImportError in sip recipe ignored: No module named matplotlib-1
WARNING: ImportError in sip recipe ignored: No module named scipy-0
*** using recipe: sip ***
*** using recipe: matplotlib ***
*** using recipe: scipy ***
Traceback (most recent call last):
File "setup.py", line 10, in <module>
setup_requires=['py2app'],
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/Users/opensw/SkyDrive/SISSA/Kymograph/py2app-0.7.3-py2.7.egg/py2app/build_app.py", line 553, in run
self._run()
File "/Users/opensw/SkyDrive/SISSA/Kymograph/py2app-0.7.3-py2.7.egg/py2app/build_app.py", line 741, in _run
self.run_normal()
File "/Users/opensw/SkyDrive/SISSA/Kymograph/py2app-0.7.3-py2.7.egg/py2app/build_app.py", line 816, in run_normal
self.process_recipes(mf, filters, flatpackages, loader_files)
File "/Users/opensw/SkyDrive/SISSA/Kymograph/py2app-0.7.3-py2.7.egg/py2app/build_app.py", line 710, in process_recipes
find_needed_modules(mf, packages=rval['packages'])
File "build/bdist.macosx-10.6-intel/egg/modulegraph/find_modules.py", line 199, in find_needed_modules
TypeError: 'NoneType' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
the*_*oom 10
问题是一些错误的输入已经传递给算法,该算法试图检测依赖性以便将它们打包到你的应用程序中 - 我遇到麻烦的地方之一就是在README包中使用了github风味的降价. md文件.
这是调试setup.py问题的一般指南,或者实际上是python问题.
以交互模式再次运行,即python -i setup.py py2app.一旦setup.py退出,您将发现自己处于python提示符中.
跑from pdb import pm; pm().您现在应该发现自己处于调试提示状态.
类型up和回车-你现在在堆栈帧更高-可以键入list到看到在源代码中的当前帧的位置,并args看到传递到当前帧(通常是一个函数或方法)中的参数.您还可以运行python命令来检查当前状态,并运行pp var漂亮打印该变量.
一旦你重复了上面的步骤几次,你会发现遇到错误的地方 - 在我遇到它是README文件的情况下,我发现了一个变量lineno,它给出了我的README文件的行,导致了错误.如果您的问题是模块导入,它可能会有所不同,但我的直觉是您会发现自己循环遍历packages堆栈跟踪中看到的参数,并且当前列表项将是您问题的关键.
| 归档时间: |
|
| 查看次数: |
2155 次 |
| 最近记录: |