XCode没有看到python模块

时间:2012-08-18 03:52:51

标签: python xcode pythonpath

首先让我说我是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安装,看起来,它们位于/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/。我搜索了我的机器,我没有另外安装python,我知道。我在安装模块后重新启动了Xcode,但没有什么区别。我还将PYTHONPATH设置为由which python指定的相同路径指定的site-packages目录。

我对问题的最好猜测是我没有正确定义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

2 个答案:

答案 0 :(得分:2)

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的框架中。虽然您的shell路径$PATH可能已设置为在搜索路径的前面包含该bin目录,以便在shell中找到较新的python,但这可能不适用于Xcode。换句话说,Xcode使用的是系统Python,而不是您安装的较新的Python。您可能需要更改Xcode项目中的某些变量,以便首先搜索该路径以查找该Python(或使用解释器的绝对路径)。您应该删除指向PYTHONPATH的{​​{1}}环境变量。默认情况下,每个Python都会自动搜索其site-library。更多信息是here

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

PEAK-rules

如果您想使用较新的非系统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 (google for easy_install)或PyPI distribute即可。

答案 1 :(得分:0)

当我从OS X 10.9迁移到10.10时,我遇到了类似的问题。经过多次努力,我发现有两个版本的Python,我一直在使用旧版本。我键入了#py;&#39;在终端中并将文件夹复制到Xcode。

有了这个问题奇迹般地消失了。检查一下,这有效......!