导入错误。没有名为基金会的模块

问题描述 投票:22回答:8

我试图按照 "用Xcode 3.2进行PyObjC开发 "的公认答案的说明。由于我没有足够的回复来评论实际的问题,我将把它们转贴在这里。


以下是我为了让PyObjC在Snow Leopard中工作所做的。

  • 使用Finder,我去了 Go > Connect to Server... 并连接到 http:/svn.red-bean.comyobjctrunkpyobjcpyobjc-xcode。 作为一个客人。

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

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

  • 复制了 Project Templates 文件夹转移到其他地方,例如,桌面。

  • 使用 "终端",导航到桌面上的临时项目模板文件夹,并运行这个命令来 "构建 "模板。

$ cd ~DesktopProject/Templates

$ .project-tool.py -k -v --template ~DesktopProject/TemplatesCocoa-Python/ApplicationCocoaApp.xcodeprojTemplateInfo.plist Cocoa-Python/Application ~LibraryApplication/Support/DeveloperSharedXcodeProject/TemplatesCocoa-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,我读到这个模块应该已经安装并工作了。我读到你可以通过运行以下命令来测试PyObjC模块是否正常工作 >>> import objc 的Python命令行中。当我运行这个命令时,我得到。

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

谁能帮我消除这个错误?似乎我应该能够用我的Snow Leopard安装自动完成所有这些工作,但我不能。

python xcode osx-snow-leopard pyobjc
8个回答
26
投票

我有同样的问题。我想我的问题是由使用 自酿 来安装我自己的Python来修整。

因为担心python版本混用,所以我没有按照上面的方法创建链接,而是用新的pyobjc安装。

$ pip install pyobjc

出于兴趣,从(http:/pythonhosted.orgpyobjc)

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


5
投票

好吧,结果发现,修改了mjv的答案,我能够通过输入

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

执行前 ./project-tool.py 线。我仍然觉得很可笑,我必须这样做,如果有人能看出原因,我将很高兴知道。

这样做也得到了

>>> import objc

行工作。


4
投票

因为PyObjC在那里:SystemLibraryFrameworksPython.frameworkVersions2.6ExtraslibpythonPyObjC。

编辑:我找到了如何让 "import objc "工作的方法,只要:export PYTHONPATH="SystemLibraryFrameworksPython.frameworkVersions2.6Extraslibpython"

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


3
投票

对于python 2.7

export PYTHONPATH="SystemLibraryFrameworksPython.frameworkVersions2.7Extraslibpython"


2
投票

两种情况之一。

  • 要么是Fundation模块并不存在。
  • 或者Python解释器不知道什么时候找到这个文件。

Python在PythonPath中寻找模块

看这个 site-packages 更多关于如何 Python路径 是创建等。


1
投票

运行 python -v 来跟踪导入语句,这在交互模式下也能使用。


1
投票

我可以在OSX上通过运行Foundation来访问Python的安装。/usr/bin/python file-to-run.py


0
投票
  1. 移除你的python或移除网站包包基金会基金会。

  2. pip3 安装 pyobjc

基金会这个名字与 https:/pypi.orgprojectfoundation。

© www.soinside.com 2019 - 2024. All rights reserved.