Mic*_*hal 12 python macos py2app python-3.x
由于某些原因我无法解释或google,即使用最简单的例子,py2app也会崩溃.我使用python 3.4.1虚拟环境创建,Projects/Test/virtenv其中py2app通过pip安装.
这是输出$pip list:
altgraph (0.12)
macholib (1.7)
modulegraph (0.12)
pip (1.5.6)
py2app (0.9)
setuptools (3.6)
foo.py是一个保存在Projects/Test /中的hello world示例文件,包含一行:
print('hello world')
setup.py保存在Projects/Test中,生成者$py2applet --make-setup foo.py:
"""
This is a setup.py script generated by py2applet
Usage:
    python setup.py py2app
"""
from setuptools import setup
APP = ['foo.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True}
setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)
这是运行的完整输出$python setup.py py2app(所有pip和python命令都是在激活虚拟环境的情况下完成的):
running py2app
creating /Users/mik/Desktop/Projects/Test/build
creating /Users/mik/Desktop/Projects/Test/build/bdist.macosx-10.8-x86_64
creating /Users/mik/Desktop/Projects/Test/build/bdist.macosx-10.8-x86_64/python3.4-standalone
creating /Users/mik/Desktop/Projects/Test/build/bdist.macosx-10.8-x86_64/python3.4-standalone/app
creating /Users/mik/Desktop/Projects/Test/build/bdist.macosx-10.8-x86_64/python3.4-standalone/app/collect
creating /Users/mik/Desktop/Projects/Test/build/bdist.macosx-10.8-x86_64/python3.4-standalone/app/temp
creating /Users/mik/Desktop/Projects/Test/dist
creating build/bdist.macosx-10.8-x86_64/python3.4-standalone/app/lib-dynload
creating build/bdist.macosx-10.8-x86_64/python3.4-standalone/app/Frameworks
*** using recipe: lxml ***
*** using recipe: ftplib ***
*** using recipe: sip ***
*** using recipe: ctypes ***
*** using recipe: xml ***
*** using recipe: pydoc ***
Traceback (most recent call last):
  File "setup.py", line 18, in <module>
    setup_requires=['py2app'],
  File "/usr/local/Cellar/python3/3.4.1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/local/Cellar/python3/3.4.1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/local/Cellar/python3/3.4.1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/Users/mik/Desktop/Projects/Test/virtenv/lib/python3.4/site-packages/py2app/build_app.py", line 659, in run
    self._run()
  File "/Users/mik/Desktop/Projects/Test/virtenv/lib/python3.4/site-packages/py2app/build_app.py", line 865, in _run
    self.run_normal()
  File "/Users/mik/Desktop/Projects/Test/virtenv/lib/python3.4/site-packages/py2app/build_app.py", line 943, in run_normal
    self.process_recipes(mf, filters, flatpackages, loader_files)
  File "/Users/mik/Desktop/Projects/Test/virtenv/lib/python3.4/site-packages/py2app/build_app.py", line 824, in process_recipes
    rval = check(self, mf)
  File "/Users/mik/Desktop/Projects/Test/virtenv/lib/python3.4/site-packages/py2app/recipes/virtualenv.py", line 80, in check
    mf.scan_code(co, m)
AttributeError: 'ModuleGraph' object has no attribute 'scan_code'
有人可以解释一下发生了什么以及如何解决它?
编辑:这是modulegraph.py中scan_code的文档,但在Projects/Test/virtenv/lib/python3.4/site-packages/modulegraph/modulegraph.py中找到的文件包含一个名为_scan_code的函数,带有前导下划线.这种变化是否打破了py2app?
编辑:发布此
编辑:从上述文件中的几个函数定义中手动删除前导下划线,允许py2app无错误地运行.对于发生的事情,我仍然感到困惑
小智 15
我和你有同样的问题,现在解决了.
我提到了这篇文章.
首先,搜索路径
$ /yourenv/lib/python2.7/site-packages/py2app/recipes/virtualenv.py
接下来,打开此文件virtualenv.py,查找scan_code或load_module将其更改为_scan_code或_load_module.
最后,尝试运行您的应用
| 归档时间: | 
 | 
| 查看次数: | 2934 次 | 
| 最近记录: |