我想开始尝试用PyObjC开发一些简单的应用程序。我安装了PyObjC和Xcode模板。我知道PyObjC本身可以工作,因为我成功地运行了this script。当我试图从Cocoa Python应用程序模板创建一个项目并运行它时,我遇到了以下错误:
Traceback (most recent call last): File "main.py", line 10, in import objc File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PyObjC/objc/__init__.py", line 25, in from _convenience import * File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PyObjC/objc/_convenience.py", line 21, in from itertools import imap ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/itertools.so, 2): no suitable image found. Did find: /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/itertools.so: mach-o, but wrong architecture 2010-02-08 19:40:09.280 TestApplication[3229:a0f] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '/Users/icktoofay/Desktop/TestApplication/main.m:44 main() PyRun_SimpleFile failed with file '/Users/icktoofay/Desktop/TestApplication/build/Debug/TestApplication.app/Contents/Resources/main.py'. See console for errors.'
当我尝试打开一个普通的Python提示符并导入itertools
时,没有出现任何错误。我在macosx10.6snowleopard上使用MacPorts的python2.6.4。在
我很感激你的帮助。在
你有一个32位对64位的问题。看起来您使用的是从MacPorts安装的Python2.6,显然它不是一个通用的(32位/64位)版本。要么你的应用程序以64位运行,而Python只有32位,要么相反。您可以使用
file
进行检查:最简单的修复方法可能是重新安装MacPorts Python和其他安装的包(如PyObjC):
^{pr2}$编辑:既然您报告Python是64位的,那么问题几乎可以肯定是由于pythonpyobjc项目的Xcode模板设置问题引起的。启动代码可能正在加载苹果提供的通用Python解释器。您可以在
import objc
之前添加类似的内容进行检查:对于MacPorts来说,应该是这样
我对在Xcode下使用模板的来龙去脉还不太熟悉,不知道有多少人在MacPorts Python中使用它们,尤其是在10.6版本下。在
另一个想法是,苹果提供的python2.6.1已经安装了PyObjC版本。也许使用它会更简单。或者不要使用Xcode并使用
py2app
或其他解决方案来运行它。在相关问题 更多 >
编程相关推荐