首先让我说我是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
答案 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-library
或PEAK
的经验,但请注意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。
有了这个问题奇迹般地消失了。检查一下,这有效......!