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
错误。