问题:点破了。如何修复DistributionNotFound错误?
每当我尝试使用pip时,都会出现错误。例如:
$ sudo pip install gevent-websocket
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2675, in <module>
parse_requirements(__requires__), Environment()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 552, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==0.8.1
我很想将pip的值更改为pip == 0.8.2 ..,但是我没有处理“ hacking”我的安装的后果…我正在运行python 2.7,pip的版本为0.8.2。
Whenever i try to use pip I get an error. For exampple:
$ sudo pip install gevent-websocket
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2675, in <module>
parse_requirements(__requires__), Environment()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 552, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==0.8.1
I feel tempted to change the value of into pip==0.8.2.. but I dont feel dealing with the consequences of ‘hacking’ up my installation…
I’m running python 2.7 and pip is at version 0.8.2.
回答 0
我在MacBook中发现了这个问题,原因是因为正如@Stephan所说,我easy_install
用来安装pip,而这两种py软件包管理工具的混合导致了pkg_resources.DistributionNotFound
问题。解决方法是:
easy_install --upgrade pip
记住:只使用一个以上的工具来管理您的PY包。
I find this problem in my MacBook, the reason is because as @Stephan said, I use easy_install
to install pip, and the mixture of both py package manage tools led to the pkg_resources.DistributionNotFound
problem.
The resolve is:
easy_install --upgrade pip
Remember: just use one of the above tools to manage your Py packages.
回答 1
我在/ usr / local / bin / pip的0.8.2中替换了0.8.1,一切都恢复了。
__requires__ = 'pip==0.8.2'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('pip==0.8.2', 'console_scripts', 'pip')()
)
我通过easy_install安装了pip,这可能使我头痛。我认为这是您现在应该做的..
$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv
I replaced 0.8.1 in 0.8.2 in /usr/local/bin/pip and everything worked again.
__requires__ = 'pip==0.8.2'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('pip==0.8.2', 'console_scripts', 'pip')()
)
I installed pip through easy_install which probably caused me this headache.
I think this is how you should do it nowadays..
$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv
回答 2
我在使用自制软件时遇到了这个问题。这是第26900期的解决方案
python -m pip install --upgrade --force pip
I had this issue when I was using homebrew. Here is the solution from Issue #26900
python -m pip install --upgrade --force pip
回答 3
尝试使用get-pip脚本重新安装:
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
这是从pip Github页面上获取的,并为我工作。
Try re-installing with the get-pip script:
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
This is sourced from the pip Github page, and worked for me.
回答 4
如果您使用的是CentOS,请确保已安装YUM软件包“ python-setuptools”
yum install python-setuptools
为我修复它。
If you’re on CentOS make sure you have the YUM package “python-setuptools” installed
yum install python-setuptools
Fixed it for me.
回答 5
问题的根源通常是bin
(Linux)或Scripts
(Windows)子目录中的过时脚本。我将以我遇到的问题为例对此进行解释。
我在用户站点包中安装了virtualenv 1.10版本(实际上,它在用户站点包中而不是系统站点包中是无关紧要的)
pdobrogost@host:~$ which virtualenv
/home/users/pdobrogost/.local/bin/virtualenv
pdobrogost@host:~$ virtualenv --version
1.10
将其升级到版本1.11后,出现以下错误:
pdobrogost@host:~$ virtualenv --version
Traceback (most recent call last):
File "/home/users/pdobrogost/.local/bin/virtualenv", line 5, in <module>
from pkg_resources import load_entry_point
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2701, in <module>
return self.__dep_map
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 572, in resolve
if insert:
pkg_resources.DistributionNotFound: virtualenv==1.10
/home/users/pdobrogost/.local/bin/virtualenv
错误消息中提到的文件如下所示:
#!/opt/python/2.7.5/bin/python2.7
# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==1.10','console_scripts','virtualenv'
__requires__ = 'virtualenv==1.10'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('virtualenv==1.10', 'console_scripts', 'virtualenv')()
)
在那里,我们看到该virtualenv
脚本未更新,仍然需要先前安装的virtualenv 1.10版本。
现在,像这样重新安装virtualenv
pdobrogost@host:~$ pip install --user --upgrade virtualenv
Downloading/unpacking virtualenv from https://pypi.python.org/packages/py27/v/virtualenv/virtualenv-1.11.1-py27-none-any.whl#md5=265770b61de41d34d2e9fdfddcdf034c
Using download cache from /home/users/pdobrogost/.pip_download_cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fpy27%2Fv%2Fvirtualenv%2Fvirtualenv-1.11.1-py27-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...
无济于事(两者都不是pip install --user --upgrade --force-reinstall virtualenv
),因为脚本/home/users/pdobrogost/.local/bin/virtualenv
保持不变。
我可以解决此问题的唯一方法是从/home/users/pdobrogost/.local/bin/
文件夹中手动删除virtualenv *脚本,然后再次安装virtualenv。之后,新生成的脚本将引用该软件包的正确版本:
pdobrogost@host:~$ virtualenv --version
1.11
The root of the problem are often outdated scripts in the bin
(Linux) or Scripts
(Windows) subdirectory. I’ll explain this using problem I encountered myself as an example.
I had virtualenv version 1.10 installed in my user site-packages (the fact it’s in user site-packages not sytem site-packages is irrelevant here)
pdobrogost@host:~$ which virtualenv
/home/users/pdobrogost/.local/bin/virtualenv
pdobrogost@host:~$ virtualenv --version
1.10
After I upgraded it to version 1.11 I got the following error:
pdobrogost@host:~$ virtualenv --version
Traceback (most recent call last):
File "/home/users/pdobrogost/.local/bin/virtualenv", line 5, in <module>
from pkg_resources import load_entry_point
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2701, in <module>
return self.__dep_map
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 572, in resolve
if insert:
pkg_resources.DistributionNotFound: virtualenv==1.10
File /home/users/pdobrogost/.local/bin/virtualenv
mentioned in the error message looked like this:
#!/opt/python/2.7.5/bin/python2.7
# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==1.10','console_scripts','virtualenv'
__requires__ = 'virtualenv==1.10'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('virtualenv==1.10', 'console_scripts', 'virtualenv')()
)
There, we see that virtualenv
script was not updated and still requires previously installed version 1.10 of virtualenv.
Now, reinstalling virtualenv like this
pdobrogost@host:~$ pip install --user --upgrade virtualenv
Downloading/unpacking virtualenv from https://pypi.python.org/packages/py27/v/virtualenv/virtualenv-1.11.1-py27-none-any.whl#md5=265770b61de41d34d2e9fdfddcdf034c
Using download cache from /home/users/pdobrogost/.pip_download_cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fpy27%2Fv%2Fvirtualenv%2Fvirtualenv-1.11.1-py27-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...
does not help (neither pip install --user --upgrade --force-reinstall virtualenv
) because script /home/users/pdobrogost/.local/bin/virtualenv
is left unchanged.
The only way I could fix this was by manually removing virtualenv* scripts from /home/users/pdobrogost/.local/bin/
folder and installing virtualenv again. After this, newly generated scripts refer to the proper version of the package:
pdobrogost@host:~$ virtualenv --version
1.11
回答 6
我能够这样解决:
$ brew update
$ brew doctor
$ brew uninstall python
$ brew install python --build-from-source # took ~5 mins
$ python --version # => Python 2.7.9
$ pip install --upgrade pip
我正在运行以下内容(截至2015年1月2日):
OS X Yosemite
Version 10.10.1
$ brew -v
Homebrew 0.9.5
$ python --version
Python 2.7.9
$ ipython --version
2.2.0
$ pip --version
pip 6.0.3 from /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-6.0.3-py2.7.egg (python 2.7)
$ which pip
/usr/local/bin/pip
I was able to resolve this like so:
$ brew update
$ brew doctor
$ brew uninstall python
$ brew install python --build-from-source # took ~5 mins
$ python --version # => Python 2.7.9
$ pip install --upgrade pip
I’m running w/ the following stuff (as of Jan 2, 2015):
OS X Yosemite
Version 10.10.1
$ brew -v
Homebrew 0.9.5
$ python --version
Python 2.7.9
$ ipython --version
2.2.0
$ pip --version
pip 6.0.3 from /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-6.0.3-py2.7.egg (python 2.7)
$ which pip
/usr/local/bin/pip
回答 7
我在OSx中面临类似的问题。我的堆栈跟踪说
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: setuptools>=11.3
然后我做了以下
sudo pip install --upgrade setuptools
这为我解决了问题。希望有人会觉得有用。
I was facing the similar problem in OSx. My stacktrace was saying
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: setuptools>=11.3
Then I did the following
sudo pip install --upgrade setuptools
This solved the problem for me. Hope someone will find this useful.
回答 8
在Mac OS X(MBP)上,以下内容(从此处找到的另一个答案中解决)解决了我的问题:
C02L257NDV33:~ jjohnson$ brew install pip
Error: No available formula for pip
Homebrew provides pip via: `brew install python`. However you will then
have two Pythons installed on your Mac, so alternatively you can:
sudo easy_install pip
C02L257NDV33:~ jjohnson$ sudo easy_install pip
显然,这里的根本原因是使用第二种方法来安装python(在我的情况下是Homebrew)。希望负责pip脚本的人员可以解决此问题,因为自从首次报告Stack Overflow以来,该问题仍然有意义两年。
On Mac OS X (MBP), the following (taken from another answer found herein) resolved my issues:
C02L257NDV33:~ jjohnson$ brew install pip
Error: No available formula for pip
Homebrew provides pip via: `brew install python`. However you will then
have two Pythons installed on your Mac, so alternatively you can:
sudo easy_install pip
C02L257NDV33:~ jjohnson$ sudo easy_install pip
Clearly the root cause here is having a secondary method by which to install python (in my case Homebrew). Hopefully, the people responsible for the pip script can remedy this issue since its still relevant 2 years after first being reported on Stack Overflow.
回答 9
我遇到了这个问题,因为我安装了python / pip ~/.pydistutils.cfg
,但我不记得自己写了。删除它,重新安装(带有pybrew
),一切都很好。
I had this problem because I installed python/pip with a weird ~/.pydistutils.cfg
that I didn’t remember writing. Deleted it, reinstalled (with pybrew
), and everything was fine.
回答 10
就我而言(山姆问题,但其他软件包)没有版本依赖性。一系列的pip卸载和pip insstall确实有所帮助。
In my case (sam problem, but other packages) there was no version dependency. A sequence of pip uninstall and pip insstall did help.