Python pip在OS X 10.8升级后破解

升级到Mac OS X 10.8(Mountain Lion),尝试调用$ pip时出现以下错误:

 Traceback (most recent call last): File "/usr/local/bin/pip", line 5, in <module> from pkg_resources import load_entry_point File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module> working_set.require(__requires__) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require needed = self.resolve(parse_requirements(requirements)) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve raise DistributionNotFound(req) # XXX put more info here pkg_resources.DistributionNotFound: pip==1.1 

更新:试图通过再次执行安装程序重新安装(与http://www.pip-installer.org/en/latest/installing.html#using-the-installer和easy_install ),但没有工作,得到同样的错误。

现在尝试以下:调用$ sudo pip和上述错误消失。 奇怪的是,在上面的错误消息中找不到的目录指向/ System / Library / … python安装是(新?)找/ Library / Frameworks / ..:

 $ which python /Library/Frameworks/Python.framework/Versions/Current/bin/python 

任何想法如何摆脱sudo?

使用easy_install将您的pip更新到最新版本:

sudo easy_install -U pip

还要确保使用Command Line Tools安装了最新的XCode (版本4.4)。

这对我有用

 rm -f /usr/local/bin/easy_install brew reinstall python pip install --upgrade setuptools pip install --upgrade pip 

我有一个类似的错误,但sudo pip也没有工作。 我正在使用“brew”安装python(与/ usr / local / bin符号链接),发现问题在于,pip和easy_install文件中的shebang被硬编码为#!/usr/bin/python而不是#!/usr/local/bin/python ,所以使用的是系统python版本,而不是brew版本。

干杯,汤姆

我实际上不能做什么build议。 我反而必须执行:

 xcode-select --install 

然后我能够安装ldap模块。

我尝试了所有的答案,从重新安装easy_install安装一个新的Python版本,没有为我工作。

我所做的是在/ Library / Frameworks文件夹中安装一个新的Python安装程序,并从/ usr / local / bin中安装一个符号链接(出于某种原因,我的系统有一个从/Library/Frameworks/Python.framework到/系统/框架/ Python.framework)。 我的想法是保持/ System / Library / Frameworks文件被系统命令使用在/ usr / bin中,并让/ usr / local / bin指向另一个“user land”安装在/ Library / Frameworks中。 为了做到这一点:

  • 将/System/Library/Framework/Python.framework重命名为_OLD_Python.framework

  • 删除/ usr / local / bin中的每个python文件(使用sudo rm / usr / local / bin / python *)和/ usr / local / bin / pip *(但不要触摸/ usr / bin)

  • 从官方网站( http://www.python.org/getit/ )重新安装python ==>这将重新安装/ Library / Framework中的Python而不是/ System / Library / Framework

  • 然后启动应用程序/ Python /更新Shell Profile.command命令,以确保您的path正在使用该命令

  • 然后重新使用/ usr / local / bin中的符号链接

    ln -s ../../Library/Frameworks/Python.framework/Versions/2.7/bin/python python

  • 最后,将_OLD_Python.framework重命名为Python.framework(因为这是/ usr / bin / python指向的path)

键入“哪个python”应该指向/ Library / …而不是/ System / Library。 从那里你应该能够正确地重新安装easy_install和pip。

而不是改变所有权,可以简单地更改权限:

$ sudo chmod -R o + rX /Library/Python/2.7/site.packages

在小牛队,我发现

 ls -l `which python` /usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python 

而点子显示

 ls -l `which pip` /usr/local/bin/pip 

我重新命名了旧的pip并创build了一个适当的pip二进制符号链接,现在一切正常。 这可能不是最好的解决scheme,但它的工作原理。

我通过用自制软件重新安装python来解决这个问题: brew install python

我改变了Python文件夹的权限(从root到我的用户),现在一切都为我工作:

 sudo chown -R <your_user>:wheel /Library/Python/2.7/site-packages/ 

不build议用于具有多个用户的机器。

我通常在某些项目中提到bonjour-py在他们的requirements.txt遇到过同样的问题,不知道现在应该跟踪哪一个。

有人告诉我, 点子工具 。 这实际上是一个很好的select,以确定你有,以及如果你想更新它们。 作为一个奖励,它忽略了bonjour-py错误。