在阅读有关 virtualenv here 时,我意识到我没有 pip 1.3+,所以我运行了
pip install --upgrade pip
,现在当我运行 pip --version
时,我得到以下信息:
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 2807, in <module>
parse_requirements(__requires__), Environment()
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 594, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==1.2.1
如果有帮助,或者完全相关,我的
$PATH
看起来像这样:
/usr/local/bin:/usr/local/share/python:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
另外,
which pip
给了我/usr/local/bin/pip
。
不知道如何处理该错误。谢谢。
(已删除)----------------------------
我今天从 OS X Lion 升级到 Mountain Lion 后碰巧遇到了类似的情况。
其他提出的解决方案要么不起作用,要么用brew版本替换Apple版本的Python,我不确定这是否是saclark所要求的。
我修复它的方法是手动安装
distribute
,从而使 easy_install
恢复工作,然后安装 pip
。
命令是:
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.45.tar.gz
$ tar -xzvf distribute-0.6.45.tar.gz
$ cd distribute-0.6.45
$ sudo python setup.py install
$ sudo easy_install pip
如果链接不起作用,您始终可以在此处找到更新版本的分发。
我今天也遇到了类似的问题。经过一番研究,我通过使用以下命令重新安装 pip 解决了这个问题:-
python -m pip install --upgrade --force-reinstall pip
希望有人会觉得它有帮助。
顺便说一句,有一个更简单的方法来做到这一点(我刚刚遇到过这个)。
编辑
/usr/local/bin/pip
并更改对版本号的引用(因此下面您需要将“1.5.6”更改为您正在使用的任何版本号):
#!/usr/local/opt/python/bin/python2.7
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==1.5.6','console_scripts','pip'
__requires__ = 'pip==1.5.6'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
)
那么到那时你可能就完全好了。
我想找出哪里需要 pip 1.2.1,但我没有那么多时间......所以我只是将 pip 降级到 1.2.1。一时没办法了,直到pip或者distribute包被修改了。
如何做到这一点?只需在控制台中输入此内容(我希望您的分发包很好):
easy_install pip==1.2.1
无需卸载python并重新安装。安装最新的分发包,然后用它更新 pip 应该可以解决问题。
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo python ez_setup.py
sudo easy_install -U pip
删除Python的
pip
中的site-package
包。对于 Homebrew Python 2.7,请执行以下操作:
rm -r /usr/local/lib/python2.7/site-packages/pip
按照官方pip
文档网站上的
说明重新安装它。简而言之:
curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py
对于
pip
6.x,无需安装旧版 distribute
软件包。只需setuptools
,默认情况下将通过上面提到的get-pip.py
脚本安装。
嗯..令人费解。想知道 1.2.1 来自哪里。只是出于好奇,您可以发布 /usr/local/bin/pip 的内容吗?应该只有几行。
您可以尝试使用分发(再次)更新 pip,也许也可以分发自己..
easy_install --upgrade distribute
easy_install --upgrade pip