如何修复发行版没有发现错误?

无论何时我尝试使用 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 = = 0.8.2。.但我不觉得应付的后果’黑客’我的安装..。 我运行的是 python2.7,pip 的版本是0.8。

217139 次浏览

我在/usr/local/bin/pip 中替换了0.8.1和0.8.2中的0.8。

__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

如果您在 CentOS 上,请确保已经安装了 YUM 包“ python-setuptools”

yum install python-setuptools

帮我修好了。

我在我的 MacBook 中发现了这个问题,原因是如@Stephan 所说,我使用 easy_install来安装 pip,两个 py 包管理工具的混合导致了 pkg_resources.DistributionNotFound问题。 决心是:

easy_install --upgrade pip

记住: 只需使用上述工具的 来管理 Py 包。

我有这个问题,因为我安装了一个奇怪的 ~/.pydistutils.cfg的 python/pip,我不记得我写过这个。删除它,重新安装(与 pybrew) ,一切都很好。

在 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 首次报道2年后仍然相关。

问题的根源通常是 bin(Linux)或 Scripts(Windows)子目录中过时的脚本。我将用我自己遇到的问题作为例子来解释这个问题。

我在我的用户站点包中安装了 viralenv 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脚本没有更新,仍然需要先前安装的 viralenv 版本1.10。
现在,像这样重新安装 viralenv

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/文件夹中删除 viralenv * 脚本,然后再次安装 viralenv。在此之后,新生成的脚本指的是软件包的正确版本:

pdobrogost@host:~$ virtualenv --version
1.11

尝试使用 get-pip 脚本重新安装:

wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py

这是来源于 pip Github 页面,并为我工作。

在我的例子中(Sam 问题,但是其他包)没有版本依赖关系。一系列 pip 卸载和 pip 安装确实有帮助。

我可以这样解决这个问题:

$ 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

我在使用自制程序时遇到了这个问题

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

我在 OSx 也遇到过类似的问题

raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: setuptools>=11.3

然后我做了以下几件事

sudo pip install --upgrade setuptools

这对我来说解决了问题。希望有人会发现这个有用。