可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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.
回答1:
The brutal way:
Assuming you are using homebrew for Mac (because I see /usr/local/Cellar), I suggest to
- remove (or backup)
/usr/local/lib/python2.7
, and
brew rm python && brew install python
.
This will definitely install pip 1.3.3 alongside of python. Your distribute will also be 0.6.35.
The soft way:
From /usr/local/lib/python2.7/site-packages
just remove:
easy-install.pth
pip-1.2.1-py2.7.egg
or other versions of pip you have.
distribute-0.6.34-py2.7.egg
or other versions
Then, brew rm python && brew install python
. This will leave all your other bindings from brew and installed stuff intact. Python, pip and distribute will be replaced with up-to-date versions.
additionally:
Please check that you don't have a distribute or setuptools or pip located in /Library/Python/2.7/site-packages
. That dir is re-used by all python 2.7 versions (brewed or from OS X) and will interferre with the pip/distribute already installed by Homebrew.
回答2:
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:
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.
回答4:
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.
回答5:
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
回答6:
There is no need to uninstall python and install it back. Get the latest distribute package installed and then update pip with it should do the trick.
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo python ez_setup.py
sudo easy_install -U pip
回答7:
The correct way to fix modern version (6.x) of pip in 2 steps
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
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.
回答8:
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