DistributionNotFound error after upgrading pip

2019-02-06 23:10发布

In reading about virtualenv here I realized I didn't have pip 1.3+, so I ran pip install --upgrade pip and now when I run pip --version i get the following:

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

If it helps, or is at all relevant, my $PATH looks like this:

/usr/local/bin:/usr/local/share/python:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin

Also, which pip gives me /usr/local/bin/pip.

Not sure what to do about the error. Thanks.

8条回答
forever°为你锁心
2楼-- · 2019-02-06 23:29

I happened to get to a similar state after upgrading from OS X Lion to Mountain Lion today.

The other proposed solutions either do not work, or replace the Apple version of Python with the brew version, which I'm not sure is what saclark asked for.

What I did to get it fixed is install distribute manually, thus getting easy_install back to work, and then install pip with it.

The commands are:

$ 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

If the link does not work, you can alway find newer versions of distribute here.

查看更多
干净又极端
3楼-- · 2019-02-06 23:38

As an aside, there's an easier way to do it (I just encountered this).

Edit /usr/local/bin/pip and change the references to version number (so below you'd want to change '1.5.6' to whatever version number you're using):

#!/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')()
    )

then you may be completely good at that point.

查看更多
Bombasti
4楼-- · 2019-02-06 23:40

I wanna find out at where pip 1.2.1 is required, but I don't have so much time... so I just downgrade pip to 1.2.1. It can't be helped for a while, till pip or distribute package is modified.

How to do this? just type this in console(I hope your distribute package is well):

easy_install pip==1.2.1
查看更多
相关推荐>>
5楼-- · 2019-02-06 23:44

The correct way to fix modern version (6.x) of pip in 2 steps

  1. Delete the pip package in Python's site-package. For Homebrew Python 2.7, do this:

    rm -r /usr/local/lib/python2.7/site-packages/pip
    
  2. Follow the instructions on the official pip documentation site to reinstall it. For short:

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

For pip 6.x, there's no need to install the legacy distribute package. Just setuptools, which will be installed by default via the get-pip.py script mentioned above.

查看更多
SAY GOODBYE
6楼-- · 2019-02-06 23:45

Hm.. puzzling. Wonder where that 1.2.1 comes from. Just out of curiosity, could you post the contents of /usr/local/bin/pip? Should only be a couple of lines.

You could try updating pip (again) with distribute, and maybe also distribute itself..

easy_install --upgrade distribute
easy_install --upgrade pip
查看更多
看我几分像从前
7楼-- · 2019-02-06 23:47

I got similar problem today. After some research, I solved it by reinstalling pip using this:-

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

Hope somebody would find it helpful.

查看更多
登录 后发表回答