сломался.как исправить ошибку DistributionNotFound? - PullRequest
141 голосов
/ 01 июня 2011

Всякий раз, когда я пытаюсь использовать пункт, я получаю сообщение об ошибке. Например:

$ 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 .. но я не чувствую, что имею дело с последствиями "взлома" моей установки ... Я использую Python 2.7, а pip версии 0.8.2.

Ответы [ 11 ]

246 голосов
/ 03 августа 2012

Я нахожу эту проблему в моем MacBook, причина в том, что, как сказал @Stephan, я использую easy_install для установки pip, и сочетание обоих инструментов управления пакетами py привело к проблеме pkg_resources.DistributionNotFound. Решимость:

easy_install --upgrade pip

Помните: просто используйте один из вышеперечисленных инструментов для управления вашими пакетами Py.

31 голосов
/ 01 июня 2011

Я заменил 0.8.1 на 0.8.2 в / usr / local / bin / pip и все снова заработало.

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

Я установил pip через easy_install, что, вероятно, вызвало у меня эту головную боль. Я думаю, что это то, как вы должны это делать в настоящее время ..

$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv
25 голосов
/ 13 апреля 2015

У меня была эта проблема, когда я использовал homebrew. Вот решение из Issue # 26900

python -m pip install --upgrade --force pip
11 голосов
/ 06 июня 2014

Попробуйте переустановить с помощью скрипта get-pip:

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

Это взято из пип-страницы Github и работает для меня.

7 голосов
/ 29 июня 2012

Если вы используете CentOS, убедитесь, что у вас установлен пакет YUM "python-setuptools"

yum install python-setuptools

Исправлено для меня.

6 голосов
/ 02 января 2015

Мне удалось решить эту проблему следующим образом:

$ 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

Я работаю со следующими материалами (по состоянию на 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
6 голосов
/ 23 января 2014

Корень проблемы часто в устаревших скриптах в подкаталоге bin (Linux) или Scripts (Windows). Я объясню это на примере проблемы, с которой я столкнулся.

В моем пользовательском site-package была установлена ​​версия virtualenv 1.10 (факт, что это пользовательские site-пакеты, а не sytem site-packages, здесь не имеет значения)

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 не был обновлен и все еще требует ранее установленную версию 1.10 virtualenv.
Теперь переустановите 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 оставлен без изменений.

Единственный способ исправить это - вручную удалить сценарии virtualenv * из папки /home/users/pdobrogost/.local/bin/ и снова установить virtualenv. После этого вновь созданные скрипты ссылаются на правильную версию пакета:

pdobrogost@host:~$ virtualenv --version
1.11
4 голосов
/ 16 февраля 2017

Я столкнулся с подобной проблемой в OSx. Моя трассировка стека говорила

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

Тогда я сделал следующее

sudo pip install --upgrade setuptools

Это решило проблему для меня. Надеюсь, кто-нибудь найдет это полезным.

2 голосов
/ 01 ноября 2013

В 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 (в моем случае доморощенный).Надеемся, что люди, ответственные за сценарий pip, могут исправить эту проблему, поскольку она все еще актуальна через 2 года после первого сообщения о переполнении стека.

1 голос
/ 24 августа 2014

В моем случае (проблема с sam, но в других пакетах) не было зависимости от версии.Последовательность pip uninstall и pip insstall действительно помогла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...