使用系统python osx的Pip

时间:2011-05-28 00:22:59

标签: python macos packages macports pip

我使用macports安装了python26,所以我系统上正确的python是/opt/local/bin/python

但是,当我这样做时

sudo pip install <packagename>

它给了我

sudo pip install <somepackage>                                           
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.6/site-packages/pip-1.0.1-py2.6.egg/pip/basecommand.py", line 126, in main
    self.run(options, args)
  File "/Library/Python/2.6/site-packages/pip-1.0.1-py2.6.egg/pip/commands/install.py", line 215, in run
    import setuptools
ImportError: No module named setuptools

Storing complete log in /Users/navin/.pip/pip.log

所以,我怀疑它正在使用系统python。我已经通过他们的站点说明安装了distribute(包含setuptools)。我也通过安装程序安装了pip。我不知怎的设法破坏了我认为的系统python的setuptools,所以这就是我现在遇到这个问题的原因:(

如何让pip重新开始工作?

5 个答案:

答案 0 :(得分:14)

总结以上内容,使用Macports安装pip:

sudo port install py27-pip

导致安装名为py27-pip的包。

但是,没有安装/opt/local/bin/pipport select pipport select py27-pip都失败(与port select python相比)。通常不建议更改其他发行版的bin目录中的内容。

请注意,/usr/bin python链接指向Apple预安装的python,/usr/local/bin指向MacPython从python.org安装的那些,而/opt/local/bin是Macports安装的位置他们的链接。通过ls -ls应用于每个bin目录中的各种python文件,可以找到实际的库安装。

要确保调用Macports文件,请在.bash_profile中导出Macports的最后路径。例如,如果您安装了Macports然后碰巧从python.org安装了二进制发行版,那么您将稍后在~/.bash_profile中找到它的路径,因此它将首先出现在路径变量中,而Macpython将会影响Macports

确保路径设置正确后,系统仍然无法在Macports pip目录中找到bin命令,因为它安装为pip-2.7且没有{{1自动创建。

结果,系统继续搜索路径,例如,稍后将Macpython添加到某个位置的路径并安装了pip,然后将显示该pip。

这可以通过上面提出的命令来避免:

pip

答案 1 :(得分:12)

使用sudo rm /usr/local/bin/pip从/ usr / local / bin删除pip。

如果您已安装带有macport的点,则which pip应显示/opt/local/bin/pip。如果没有,请按照here说明再次安装pip。只要which python显示/opt/local安装,它就应该有效。如果,则需要修改PATH env变量。

答案 2 :(得分:3)

这是我的设置,让pip使用macports并将py26-pip设置为默认的pip

sudo port install py26-pip && sudo port select --set pip py26-pip

安装完成后运行以查看pip的帮助信息

pip --help

您可能需要更新路径以包含由pip编辑.bash_profile安装的bin文件以包含类似

的内容
export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin:$PATH

答案 3 :(得分:1)

你应该在安装在/ usr / local / bin /之前的/ opt / local / bin /中安装python和pip。

此外,您应该检查以执行which python以及是否已在/ opt / local / bin / pip中安装了该点。

答案 4 :(得分:0)

我发现我需要ln -s /opt/local/bin/pip-2.7 /opt/local/bin/pip。由于某些原因,即使你尝试激活那个版本的python或pip,macport也没有构建那个链接。