玩py2app

时间:2013-02-23 03:21:54

标签: python macos py2app

我正在使用Snow Leopard上的py2app(10.6),当我跑步时遇到一些问题

python setup.py py2app

我收到以下错误: -

% python setup.py py2app
running py2app
Traceback (most recent call last):
  File "setup.py", line 18, in <module>
    setup_requires=['py2app'],
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py", line 975, in run_commands
    self.run_command(cmd)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py", line 995, in run_command
    cmd_obj.run()
  File "/Library/Python/2.6/site-packages/py2app-0.7.3-py2.6.egg/py2app/build_app.py", line 502, in run
    if sysconfig.get_config_var('PYTHONFRAMEWORK') is None:
AttributeError: 'NoneType' object has no attribute 'get_config_var'

我按照文档here安装了py2app,但似乎有一些我没有设置的环境变量。我还尝试克隆了一些项目,比如here,我最终得到了同样的错误。

有人能指出我提到如何在使用之前配置py2app的文档吗?感谢。

2 个答案:

答案 0 :(得分:1)

py2app文档很古老;你应该使用的是here

正如您从粘贴的堆栈跟踪中看到的那样,某些内容导致distutils.sysconfig成为None。看起来你正在使用Python和distutils的系统版本,这对我来说在10.6.8上运行得很好:

% /usr/bin/python -c "from distutils import sysconfig; print sysconfig.get_config_var('PYTHONFRAMEWORK')"
Python

因此,如果您从上面得到不同的结果,您可以从那里开始,否则您可以开始调试py2app代码以查看sysconfigNone的原因。

答案 1 :(得分:1)

这是py2app中的一个错误,一个快速的解决方法:在第25行的build_app.py中(请参阅问题中的回溯位置)将“sysconfig = None”更改为“from distutils import sysconfig”。

我在py2app的跟踪器[1]中提交了一个问题,并且很快就会发布一个新版本(一旦我有时间创建和测试补丁)。

[1] https://bitbucket.org/ronaldoussoren/py2app/issue/96/py2app-doesnt-work-with-python-26-anymore