在阅读virtualenv here时,我意识到我没有点差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
。
不确定如何处理错误。感谢。
答案 0 :(得分:21)
假设您使用自制软件用于Mac(因为我看到/ usr / local / Cellar),我建议
/usr/local/lib/python2.7
和brew rm python && brew install python
。 这肯定会在python旁边安装pip 1.3.3。您的分发也将是0.6.35。
从/usr/local/lib/python2.7/site-packages
只需删除:
easy-install.pth
pip-1.2.1-py2.7.egg
或您拥有的其他版本。 distribute-0.6.34-py2.7.egg
或其他版本 然后,brew rm python && brew install python
。这将使brew和安装的所有其他绑定完好无损。 Python,pip和distribute将替换为最新版本。
请检查您是否在/Library/Python/2.7/site-packages
中没有分发或设置工具或点子。所有python 2.7版本(酿造或来自OS X)都会重用该目录,并且会干扰Homebrew已安装的pip / distribute。
答案 1 :(得分:10)
我今天从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
如果该链接不起作用,您可以随时找到更新版本的分发here。
答案 2 :(得分:4)
顺便说一句,有一种更简单的方法(我刚刚遇到过这种情况)。
修改/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')()
)
那时你可能完全擅长这一点。
答案 3 :(得分:4)
我今天遇到了类似的问题。经过一些研究,我通过重新安装pip来解决它: -
python -m pip install --upgrade --force-reinstall pip
希望有人会觉得有帮助。
答案 4 :(得分:2)
我想知道pip 1.2.1在哪里需要,但我没有那么多时间......所以我只是将pip降级到1.2.1。它有一段时间没有帮助,直到pip或分发包被修改。
怎么做?只需在控制台中键入此内容(我希望您的发布包很好):
easy_install pip==1.2.1
答案 5 :(得分:2)
无需卸载python并将其重新安装。获取安装的最新分发包,然后使用它更新pip应该可以解决问题。
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo python ez_setup.py
sudo easy_install -U pip
答案 6 :(得分:1)
删除Python pip
中的site-package
包。对于Homebrew Python 2.7,请执行以下操作:
rm -r /usr/local/lib/python2.7/site-packages/pip
按照官方pip
文档网站上的instructions重新安装。简而言之:
curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py
对于pip
6.x,无需安装旧版distribute
包。只需setuptools
,默认情况下将通过上述get-pip.py
脚本安装。
答案 7 :(得分:0)
您可以尝试使用分发更新pip(再次),也可以自行分发..
easy_install --upgrade distribute
easy_install --upgrade pip