0

我有一个主要依赖于 matplotlib、tkinter、numpy 和 scipy 的 python 应用程序,我一直在为多个操作系统分发。我在 python.org 版本的 python 2.6 之上构建这些。对于 mac,我过去使用 py2app 和 pyinstaller 构建我的应用程序的独立版本取得了很好的成功。然而,最近,我包含了需要 patsy、pandas 和 igraph 的函数,并且必须迁移到 python 2.6 的 mac 分布式版本才能使 igraph 工作。在 Mac 上为我的操作系统(10.6)构建我的软件的 py2app 版本时一切正常,但是当我在 10.8 上运行时,我遇到了以下错误:

Traceback (most recent call last):
 File "UI.pyc", line 603 createHeatMap
 File "clustering.pyc", line 31, in <module>
 File "mpl_toolkits/__init__.pyc", line 2, in <module>
 File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 698, in <module>
 File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 701, in Environment
 File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 96, in get_supported_platform
 File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 222, in get_build_platform
 File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/util.py", line 98, in get_platform
 File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/sysconfig.py", line 537, in get_config_vars
 File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/sysconfig.py", line 405, in _init_posix
DistutilsPlatformError: invalid Python installation: unable to open /user/include/python2.6/pyconfig.h (No such file or directory)

通过将文件 pyconfig.h 保存到目标机器上的指定位置(在 10.8 中不存在,但在 10.6 中存在),可以解决此问题,这使我的应用程序可以正常工作。在我的 py2app pacakge 目录中,在“Contents/Resources”下有一个指向“include”目录的符号链接,它指向:/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pyconfig 。H。如果我将 pyconfig.h 文件作为附加资源包含在我的 py2app 设置文件中,它也会包含在包中,但仍然无法识别。

任何人都可以建议一个好的解决方法,不需要我使用 python.org 版本的 python(我很幸运让 igraph 使用它)。

谢谢...

4

1 回答 1

0

这是 py2app 中的一个已知问题,请参阅https://bitbucket.org/ronaldoussoren/py2app/issue/36/py2app-fails-to-build-a-working-executable。pyconfig.h 文件仅存在于安装了开发人员工具的机器上,这就是我自己没有注意到问题的原因。

最简单的解决方法可能是在创建应用程序包后用文件副本替换 pyconfig.h 符号链接。

于 2013-04-11T09:51:44.927 回答