我目前正在编写一个使用py2app 嵌入cherrypy 和django 的小型python 应用程序。在我尝试将 pyobjc 包含在我的项目中之前,它运行良好,因为我的应用程序需要一个小 GUI(它由顶部菜单栏中的一个小图标 + 一个下拉菜单组成)。
我可以毫无问题地运行我的 python 脚本(我正在使用带有 macports 的 python 2.6),但我无法启动由 py2app 生成的应用程序包。将出现一个对话框,其中包含以下消息:
ImportError:
dlopen(/Users/denis/tlon/standalone/mac/dist/django_cherry.app/Contents/Resources/lib/python2.6/lib-dynload/CoreFoundation/_inlines.so, 2): no suitable image found.
Did find:
/Users/denis/tlon/standalone/mac/dist/django_cherry.app/Contents/Resources/lib/python2.6/lib-dynload/CoreFoundation/_inlines.so: mach-o, but wrong architecture
我做了一个快速的:
sudo port -u install py26-pyobjc +universal
但由于某种原因,macports 尝试构建 openssl,每次编译都会失败。似乎问题与 zLib 有关 - 这是日志中出现的内容:
:info:build ld: warning: in /opt/local/lib/libz.dylib, file is not of required architecture
...这是输出file /opt/local/lib/libz.dylib
:
/opt/local/lib/libz.dylib: Mach-O universal binary with 2 architectures
/opt/local/lib/libz.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
/opt/local/lib/libz.dylib (for architecture i386): Mach-O dynamically linked shared library i386
在我看来没有什么不对。
我有点卡在这里。我什至不明白 openssl 与 pyObjc 有什么关系,但如果我不设法编译它,我似乎哪儿也去不了。Macports 有时真的很糟糕:/
编辑我设法解决了 Macports 问题,但不是 py2app 一个:/