3

首先让我说我对 Xcode、OS X 和安装 python 模块还很陌生。

当我尝试构建我的项目时,XCode 告诉我它找不到 python 模块:

  File "/Users/some_user/some_folder/create.py", line 2, in <module> 
    from peak.rules import abstract, when
ImportError: No module named peak.rules
Command /bin/bash failed with exit code 1

我已经安装了一个 python 模块,它说它安装正确。我可以验证它是否存在于我的python2.7/site-packages/目录中。我也这样做了which python,这给了我/Library/Frameworks/Python.framework/Versions/2.7/bin/python并验证了 python 正在使用该路径 python install 来安装站点包,而且看起来它们位于/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/. 我已经搜索了我的机器,但没有我知道的另一个 python 安装。我在安装模块后重新启动了 Xcode,但这并没有什么不同。我还设置PYTHONPATH了由which python.

我对这个问题的最佳猜测是我没有PYTHONPATH正确定义我的。这是我的整个.bash_profile文件。

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

PYTHONPATH="$ {PYTHONPATH} : /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages"
export PYTHONPATH
4

2 回答 2

3

的值PYTHONPATH不指示python要运行哪个可执行文件。相反,它是一种增加python可执行文件在导入操作期间在哪些目录中查找模块的方法。Apple 在 OS X 上发布了 Python 版本;这些解释器的路径在/usr/bin. 从您的回溯 ( /Library/Frameworks) 中的路径来看,您似乎已经安装了更新的 Python 2.7,可能是从 python.org 下载的。默认情况下,该 python 可能在/usr/local/bin;中安装了指向它的符号链接。它的规范bin目录位于框架中,位于/Library/Frameworks/Python.framework/Versions/2.7/bin. 虽然你的外壳路径,$PATH,可能已设置为在搜索路径的前面包含该 bin 目录,以便在 shell 中找到较新的 python,这可能不适用于 Xcode。换句话说,Xcode 使用的是系统 Python,而不是您安装的较新的 Python。您可能需要更改 Xcode 项目中的一些变量,以便首先在该路径中搜索该 Python(或使用解释器的绝对路径)。您应该删除PYTHONPATH指向site-library. 默认情况下,每个 Python 都会自动搜索其site-library. 更多信息在这里

更新:您在这里可能有一个更基本的问题。我没有经验,PEAKPEAK-rules请注意 Python 包索引中列出了两个单独的发行版。如果您只想使用 PEAK 规则,您似乎只需要安装PEAK-rules发行版,而不是PyPI中列出的PEAK发行版。要与系统 Python 一起使用,请尝试以下操作:

umask 022
sudo /usr/bin/easy_install-2.7 -m peak     # "uninstall" peak if installed
sudo /usr/bin/easy_install-2.7 peak-rules  # install peak-rules

如果您想使用较新的非系统 Python,只需安装并使用easy_install(google for PyPI distribute) 或pipfor 它的副本。

于 2012-08-18T04:46:16.610 回答
0

当我从 OS X 10.9 迁移到 10.10 时,我遇到了类似的问题。经过一番折腾,我发现 Python 有两个版本,我一直在使用旧版本。我在终端中输入了“which python”并将文件夹复制到 Xcode。

有了这个问题奇迹般地消失了。检查一下,这行得通……!

于 2014-12-21T00:23:10.547 回答