导入错误:未找到模块名为"Foundation"

2024-05-23 16:39:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图遵循“使用Xcode 3.2开发PyObjC”的公认答案的说明。我会在这里转载它们,因为我没有足够的代表来评论实际的问题:


下面是我为让皮奥布奇在雪豹工作所做的:

  • 使用Finder,我去了Go > Connect to Server...并作为来宾连接到http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/

  • 然后我在本地系统的~Library/Application Support/Developer/Shared/Xcode/上创建了一个名为Xcode的文件夹。(你可能已经有了这个文件夹,但我还没有为自己定制任何东西)。

  • 我将File Templates文件夹从红豆服务器复制到新的Xcode文件夹中。

  • 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

我运行的是雪豹,已经安装了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  

有人能帮我消除这个错误吗?似乎我应该可以用我的雪豹安装自动完成所有这些,但我不能


Tags: pyimportproject文件夹applicationpyobjctooltemplates
3条回答

好吧,事实证明,修改mjv的答案,我可以通过输入

export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC/"

在执行./project-tool.py行之前。我仍然觉得我必须这样做是很可笑的,如果有人知道为什么,我很高兴知道。

这样做也得到了

>>> import objc

线路工作。

我也有同样的问题。我认为是使用homebrew安装自己的Python来修补造成的。

因为我担心混合python版本,而不是像上面描述的那样创建链接,所以我安装了一个新的pyobjc,使用:

$ pip install pyobjc

出于兴趣,从(http://pythonhosted.org/pyobjc/

The PyObjC project aims to provide a bridge between the Python and Objective-C programming languages.

因为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)

相关问题 更多 >