升级到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安装是(new?)在/ Library / Frameworks /..:
$ which python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
知道如何摆脱sudo吗?
答案 0 :(得分:129)
使用easy_install
将您的pip
更新为最新版本:
sudo easy_install -U pip
另外,请确保安装了最新XCode
(版本4.4)Command Line Tools
。
答案 1 :(得分:9)
这对我有用
rm -f /usr/local/bin/easy_install
brew reinstall python
pip install --upgrade setuptools
pip install --upgrade pip
答案 2 :(得分:5)
我有类似的错误,但sudo pip
也没有用。我正在使用python的“brew”安装(符号链接到/ usr / local / bin),发现问题是pip和easy_install文件中的shebangs被硬编码为#!/usr/bin/python
而不是{{1所以使用系统python版本而不是brew版本。
干杯, 汤姆
答案 3 :(得分:3)
我实际上做不到建议。我不得不执行:
xcode-select --install
然后我就可以安装ldap模块了。
答案 4 :(得分:2)
我在这里尝试了所有的答案,从重新安装easy_install到安装新的python版本,没有任何对我有用。
我所做的是在/ Library / Frameworks文件夹中安装一个全新的Python安装,并从/ usr / local / bin安装一个符号链接(出于某种原因,我的系统有一个来自/ Library / Frameworks / Python的符号链接)。框架到/System/Frameworks/Python.framework)。我的想法是保持/ system / Library / Frameworks文件由/ usr / bin中的系统命令使用,并让/ usr / local / bin指向/ 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 ==&GT;这将在/ Library / Framework而不是/ System / Library / Framework
然后启动Applications / Python / Update Shell Profile.command命令,确保您的路径使用该路径
然后使用
在/ usr / local / bin中重新创建符号链接ln -s ../../Library/Frameworks/Python.framework/Versions/2.7/bin/python python
最后,将_OLD_Python.framework重命名为Python.framework(因为这是/ usr / bin / python指向的路径)
键入“哪个python”应该指向/ Library / ...而不是/ System / Library。从那里你应该能够正确地重新安装easy_install和pip。
答案 5 :(得分:1)
可以简单地更改权限,而不是更改所有权:
$ sudo chmod -R o + rX /Library/Python/2.7/site.packages
答案 6 :(得分:1)
小牛队,我找到了
ls -l `which python`
/usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python
而pip显示
ls -l `which pip`
/usr/local/bin/pip
我重命名了旧pip
并创建了一个符号链接到正确的pip二进制文件,现在一切都很好。它可能不是最好的解决方案,但它确实有效。
答案 7 :(得分:1)
我通过使用自制程序重新安装python来修复此问题:brew install python
答案 8 :(得分:0)
我更改了Python文件夹的权限(从root到我的用户),现在一切都适合我:
sudo chown -R <your_user>:wheel /Library/Python/2.7/site-packages/
不推荐用于拥有多个用户的计算机。
答案 9 :(得分:0)
我在bonjour-py
中引用requirements.txt
的某个项目通常遇到同样的问题,目前还不知道该跟踪哪个项目或如何跟踪该项目。
有人告诉我 pip-tool 。它实际上是识别您拥有的,以及是否要更新它们的绝佳选择。作为奖励,它忽略了bonjour-py
错误。