升级 pip 后出现 DistributionNotFound 错误

问题描述 投票:0回答:8

在阅读有关 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

不知道如何处理该错误。谢谢。

runtime-error pip traceback
8个回答
21
投票

(已删除)----------------------------


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

如果链接不起作用,您始终可以在此处找到更新版本的分发。


7
投票

我今天也遇到了类似的问题。经过一番研究,我通过使用以下命令重新安装 pip 解决了这个问题:-

python -m pip install --upgrade --force-reinstall pip

希望有人会觉得它有帮助。


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')()
    )

那么到那时你可能就完全好了。


2
投票

我想找出哪里需要 pip 1.2.1,但我没有那么多时间......所以我只是将 pip 降级到 1.2.1。一时没办法了,直到pip或者distribute包被修改了。

如何做到这一点?只需在控制台中输入此内容(我希望您的分发包很好):

easy_install pip==1.2.1

2
投票

无需卸载python并重新安装。安装最新的分发包,然后用它更新 pip 应该可以解决问题。

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo python ez_setup.py
sudo easy_install -U pip

1
投票

分两步修复现代版本(6.x)pip的正确方法

  1. 删除Python的

    pip
    中的
    site-package
    包。对于 Homebrew Python 2.7,请执行以下操作:

    rm -r /usr/local/lib/python2.7/site-packages/pip
    
  2. 按照官方pip文档网站上的

    说明
    重新安装它。简而言之:

    curl -O https://bootstrap.pypa.io/get-pip.py
    python get-pip.py
    

对于

pip
6.x,无需安装旧版
distribute
软件包。只需
setuptools
,默认情况下将通过上面提到的
get-pip.py
脚本安装。


0
投票

嗯..令人费解。想知道 1.2.1 来自哪里。只是出于好奇,您可以发布 /usr/local/bin/pip 的内容吗?应该只有几行。

您可以尝试使用分发(再次)更新 pip,也许也可以分发自己..

easy_install --upgrade distribute
easy_install --upgrade pip
© www.soinside.com 2019 - 2024. All rights reserved.