ImportError:没有名为Foundation的模块

Chr*_*ord 22 python xcode pyobjc osx-snow-leopard

我试图按照"使用Xcode 3.2进行PyObjC开发"的接受答案的说明.我会在这里重新发布它们,因为我没有足够的代表对实际问题发表评论:


以下是我为使PyObjC在Snow Leopard中工作所做的工作:

  • 使用Finder,我作为访客Go > Connect to Server...访问了http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/.

  • 然后Xcode,我在我的本地系统上创建了一个文件夹~Library/Application Support/Developer/Shared/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
Run Code Online (Sandbox Code Playgroud)

我正在运行Snow Leopard并已安装Xcode 3.2.1,并已阅读此模块应已安装并正常工作.我已经读过你可以通过>>> import objc在Python命令行中运行来测试PyObjC模块是否正常工作.当我运行这个时,我得到:

>>> import objc
Traceback (most recent call last):  
  File "<stdin>", line 1, in <module>  
ImportError: No module named objc  
Run Code Online (Sandbox Code Playgroud)

谁能帮我打消这个错误?看起来我应该可以通过我的Snow Leopard安装自动完成所有这些,但我不能.

Wal*_*ton 25

我有同样的问题.通过使用自制软件安装我自己的Python来修补我的想法.

因为我担心混合python版本,而不是如上所述创建链接,我使用以下命令安装了一个新的pyobjc:

$ pip install pyobjc
Run Code Online (Sandbox Code Playgroud)

感兴趣,来自(http://pythonhosted.org/pyobjc/)

PyObjC项目旨在提供Python和Objective-C编程语言之间的桥梁.


Chr*_*ord 5

好吧,事实证明,修改mjv的答案,我能够通过打字让它工作

export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC/"
Run Code Online (Sandbox Code Playgroud)

在执行该./project-tool.py行之前.我仍然觉得我必须这样做是荒谬的,如果有人能够明白为什么,我会很高兴知道.

这样做也得到了

>>> import objc
Run Code Online (Sandbox Code Playgroud)

线路工作.

  • 如果它有帮助,我在使用"python"执行我的脚本时遇到了同样的错误...但如果我用/ usr/bin/python执行它,那么它可以工作(无需导出任何其他路径). (2认同)

Thm*_*hmX 5

这是因为 PyObjC 在那里:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC

编辑:我找到了如何使“导入 objc”工作,只是: export PYTHONPATH="/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/"

它将所有目录添加到python路径(sys.path)