【问题标题】:ImportError: No module named FoundationImportError:没有名为 Foundation 的模块
【发布时间】:2010-12-09 12:51:53
【问题描述】:

我正在尝试按照“使用 Xcode 3.2 进行 PyObjC 开发”的已接受答案的说明进行操作。我将在此处重新发布它们,因为我没有足够的代表来评论实际问题:


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

  • 使用 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

我正在运行 Snow Leopard 并已安装 Xcode 3.2.1 并且已阅读该模块应该已经安装并可以运行。我读到您可以通过在 Python 命令行中运行 &gt;&gt;&gt; import objc 来测试 PyObjC 模块是否正常工作。当我运行它时,我得到:

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

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

【问题讨论】:

  • Foundation 模块是 Mac 平台特有的吗?
  • @jxramos 是的。

标签: python xcode osx-snow-leopard pyobjc


【解决方案1】:

我遇到了同样的问题。我的原因是我认为是使用homebrew 安装我自己的 Python 来修补。

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

$ pip install pyobjc

如有兴趣,请来自 (http://pythonhosted.org/pyobjc/)

PyObjC 项目旨在在 Python 和 Objective-C 编程语言之间架起一座桥梁。

【讨论】:

    【解决方案2】:

    好的,事实证明,修改 mjv 的答案,我可以通过键入来使其工作

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

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

    这样做也得到了

    >>> import objc
    

    生产线。

    【讨论】:

    • 如果它有帮助,我在只用“python”执行我的脚本时遇到同样的错误......但如果我用 /usr/bin/python 执行它,那么它可以工作(无需导出任何其他路径)。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      对于 python 2.7

      export PYTHONPATH="/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/"

      【讨论】:

        【解决方案5】:

        两件事之一:

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

        Python 在 PythonPath 中查找模块

        有关如何创建 Python 路径 等的更多详细信息,请参阅此SO question

        【讨论】:

        • 谢谢你。了解如何编辑 Python 路径很有用。但不幸的是,我不知道应该添加什么路径才能合并 Foundation。
        【解决方案6】:

        运行python -v 跟踪导入语句,这也适用于交互模式。

        【讨论】:

        • 对不起,我运行了这个,我确实得到了输出。我只是不明白我应该寻找什么。
        【解决方案7】:

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

        【讨论】:

          【解决方案8】:
          1. 删除你的 python 或删除 site-packages/Foundation |站点包/基础

          2. pip3 安装 pyobjc

          名称 Foundation 与 https://pypi.org/project/foundation/ 冲突

          【讨论】:

            猜你喜欢
            • 2013-04-10
            • 2013-03-11
            • 1970-01-01
            • 1970-01-01
            • 2012-12-07
            • 2012-05-23
            • 2019-07-29
            • 2015-07-04
            相关资源
            最近更新 更多