使用系统python osx的Pip

Nav*_*wal 7 python macos packages pip macports

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

但是,当我这样做的时候

sudo pip install <packagename>
Run Code Online (Sandbox Code Playgroud)

它给了我

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
Run Code Online (Sandbox Code Playgroud)

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

我该怎么办才能让pip再次工作?

Ioa*_*dis 14

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

sudo port install py27-pip
Run Code Online (Sandbox Code Playgroud)

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

但是,没有/opt/local/bin/pip安装和/ port select pipport select py27-pip两者都失败(与a相反port select python).bin通常不建议更改另一个发行版目录中的内容.

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

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

确保路径设置正确后,系统仍然无法pip在Macports bin目录中找到命令,因为它已安装为,pip-2.7并且不会pip自动创建.

结果,系统继续搜索路径,例如,如果某个地方稍后将Macpython添加到路径并安装了pip,那么该pip将显示出来.

上面提出的命令可以避免这种情况:

sudo ln -s /opt/local/bin/pip-2.7 /opt/local/bin/pip
Run Code Online (Sandbox Code Playgroud)

  • 使用Macports 2.3.1&以下现在可以使用`sudo port select --set pip pip27` (5认同)

Rob*_*wie 12

用/ usr/local/bin删除pip sudo rm /usr/local/bin/pip.

如果您已经安装了带有macports的pip,which pip那么应该显示/opt/local/bin/pip.如果没有,请按照此处的说明再次安装pip .只要which python显示/opt/local安装,它应该工作.如果没有,您将需要编辑您的PATHenv变量.