导入错误:没有名为Foundation的模块
我正在按照“PyObjC开发与Xcode 3.2”的接受答案中的说明进行操作。因为我没有足够的积分来评论实际问题,所以我在这里重新发布它:
这是我在Snow Leopard上让PyObjC工作的步骤:
我使用Finder,点击
前往 > 连接到服务器...
,然后作为访客连接到 http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/。接着,我在本地系统的
~Library/Application Support/Developer/Shared/Xcode/
目录下创建了一个名为Xcode
的文件夹。(你可能已经有这个文件夹了,但我还没有为自己定制任何东西)。我把红豆服务器上的
File Templates
文件夹复制到我新建的Xcode文件夹里。然后把
Project Templates
文件夹复制到其他地方,比如桌面。使用终端,我导航到桌面上的临时Project Templates文件夹,并运行这个命令来“构建”模板:
$ cd ~/Desktop/Project\ Templates/
$ ./project-tool.py -k -v --template ~/Desktop/Project\ Templates/Cocoa-Python\ Application/CocoaApp.xcodeproj/TemplateInfo.plist Cocoa-Python\ Application ~/Library/Application\ Support/Developer/Shared/Xcode/Project\ Templates/Cocoa-Python\ Application
当我尝试运行以 ./project-tool.py
开头的那行时,终端显示了以下错误:
Traceback (most recent call last):
File "./project-tool.py", line 22, in <module>
from Foundation import NSDictionary
ImportError: No module named Foundation
我正在运行Snow Leopard,并且已经安装了Xcode 3.2.1,我读到这个模块应该已经安装并正常工作。我还了解到,你可以通过在Python命令行中运行 >>> import objc
来测试PyObjC模块是否正常工作。当我运行这个时,我得到了:
>>> import objc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named objc
有没有人能帮我解决这个错误?看起来我应该能够在我的Snow Leopard安装中自动完成所有这些,但我做不到。
10 个回答
这是因为PyObjC在这里:
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
补充一下:
我找到了让“import objc”能工作的办法,只需要:
export PYTHONPATH="/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/"
这样做会把所有的目录添加到Python的路径中(sys.path)
我也遇到过同样的问题。我觉得是因为我用homebrew安装了自己的Python来进行一些实验。
因为我担心不同版本的Python会混在一起,所以我没有按照上面提到的方法创建链接,而是使用以下命令安装了一个新的pyobjc:
$ pip install pyobjc
顺便提一下,来自(http://pythonhosted.org/pyobjc/)
PyObjC项目的目标是提供一个Python和Objective-C编程语言之间的桥梁。
好的,经过修改mjv的回答,我发现通过输入
export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC/"
这行代码后,再执行./project-tool.py
这一行,就能正常工作了。我还是觉得这样做很荒谬,如果有人能告诉我为什么要这样做,我会非常高兴。
这样做之后,
>>> import objc
这一行也能正常工作了。