Нет модуля с именем pkg_resources

Я развертываю приложение Django на сервере разработчиков и получаю эту ошибку, когда запускаю pip install -r requirements.txt:

Traceback (most recent call last):
  File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

pkg_resources распространяется с помощью setuptools. Первоначально я думал, что это может быть не установлено на Python в virtualenv, поэтому я установил setuptools 2.6 (той же версии, что и Python) для пакетов сайтов Python в virtualenv с помощью следующей команды:

sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages

РЕДАКТИРОВАТЬ: Это происходит только в virtualenv. Если я открываю консоль вне virtualenv, то присутствует pkg_resources, но я все равно получаю ту же ошибку.

Любые идеи относительно того, почему pkg_resources не находится на пути?

Ответ 1

Обновление за июль 2018 года

Большинство людей теперь должны использовать pip install setuptools (возможно, с sudo).

Некоторым может потребоваться (повторно) установить пакет python-setuptools через их диспетчер пакетов (apt-get install, yum install и т.д.).

Эта проблема может сильно зависеть от вашей ОС и среды разработки. См. Предыдущие/другие ответы ниже, если выше не работает для вас.

объяснение

Это сообщение об ошибке вызвано отсутствующим/сломанным пакетом Python setuptools. В вопросе " Комментарий Мэтта М. и проблема с установкой" № 581 сценарий начальной загрузки, упомянутый ниже, больше не является рекомендуемым методом установки.

Инструкции для сценария бутстрапа будут оставаться ниже, если это все еще полезно для всех.

Наследственный ответ

Сегодня я столкнулся с тем же ImportError, пытаясь использовать pip. Как-то пакет setuptools был удален в моей среде Python.

Чтобы устранить проблему, запустите сценарий установки для setuptools:

wget https://bootstrap.pypa.io/ez_setup.py -O - | python

(или если у вас нет установленного wget (например, OS X), попробуйте

curl https://bootstrap.pypa.io/ez_setup.py | python

возможно, с sudo preended.)

Если у вас есть какая-либо версия distribute или любой setuptools ниже 0,6, вам придется сначала удалить его. *

Дополнительную информацию см. В Инструкции по установке.


* Если у вас уже есть рабочий distribute, проще его обновить до "оболочки совместимости", которая переключит вас на setuptools. Но если вещи уже сломаны, не пытайтесь это сделать.

Ответ 2

sudo apt-get install --reinstall python-pkg-resources

исправил его для меня в Debian. Кажется, что удаление некоторых пакетов .deb(извилистый набор в моем случае) сломал путь, используемый python для поиска пакетов

Ответ 3

Я видел эту ошибку при попытке установить родекод в virtualenv на ubuntu 13.10. Для меня решение заключалось в том, чтобы запустить

pip install --upgrade setuptools
pip install --upgrade distribute 

прежде чем запустить run_install roodecode.

Ответ 4

Это также случилось со мной. Я думаю, что проблема возникнет, если файл требований .txt содержит "распространять" запись, в то время как virtualenv использует setuptools. Pip попытается исправить настройки setuptools, чтобы освободить место для распространения, но, к сожалению, это не сработает наполовину.

Простое решение - удалить ваш текущий virtualenv, а затем создать новый virtualenv с аргументом -distribute.

Пример при использовании virtualenvwrapper:

$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt

Ответ 5

В CentOS 6 установка пакета python-setuptools исправила его.

yum install python-setuptools

Ответ 6

У меня была эта ошибка раньше, и самый высокий рейтинг дал мне ошибку, пытаясь загрузить файл ez_setup.py. Я нашел другой источник, поэтому вы можете запустить команду:

curl http://peak.telecommunity.com/dist/ez_setup.py | python

Я обнаружил, что мне также пришлось использовать sudo, чтобы он работал, поэтому вам может потребоваться запустить:

sudo curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python

Я также создал другое местоположение, из которого script можно загрузить из:

https://gist.github.com/ajtrichards/42e73562a89edb1039f3

Ответ 7

Нужно немного больше судо. Затем используется easy_install для установки pip. Работает.

sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo easy_install pip

Ответ 8

После нескольких ответов, затем, обратившись к коллеге, я работал над Ubuntu 16.04:

pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip

В моем случае это была только старая версия подушки 3.1.1, у которой были проблемы (подушка 4.x работала нормально), и это теперь разрешилось!

Ответ 9

Я исправил ошибку с помощью virtualenv, выполнив следующее:

Скопировано pkg_resources.py из

/Library/Python/2.7/site-packages/setuptools

to

/Library/Python/2.7/site-packages/

Это может быть дешевое обходное решение, но это сработало для меня.

.

Если инструменты установки не существуют, вы можете попробовать установить пакеты системного сайта, набрав virtualenv --system-site-packages /DESTINATION DIRECTORY, изменив последнюю часть, на которую вы хотите установить каталог. pkg_rousources.py будет находиться под этим каталогом в lib/python2.7/site-packages

Ответ 10

Для меня эта ошибка вызвана тем, что у меня был подкаталог под названием "сайт"! Я не знаю, является ли это ошибкой pip или нет, но я начал с:

/some/dir/requirements.txt /Некоторые/реж/сайт/

pip install -r requirements.txt не работает, что дает мне ошибку выше!

переименование подпапки с "сайта" на "src" исправило проблему! Может быть, пип ищет "сайты-пакеты"? Сумасшедший.

Ответ 11

У меня была эта проблема, когда я активировал свой virtualenv как другой пользователь, чем тот, кто его создал. Кажется, это проблема разрешения. Я обнаружил это, когда я попробовал ответить @cwc и увидел это на выходе:

Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied

Возвращаясь к пользователю, создавшему virtualenv, тогда запуск исходной команды pip install прошел без проблем. Надеюсь, это поможет!

Ответ 12

У меня была и эта проблема сегодня. У меня только проблема внутри виртуального env.

Решение для меня заключалось в деактивации виртуального env, удалении, а затем удалении virtualenv с помощью pip и его повторной установке. После этого я создал новый виртуальный env для моего проекта, тогда пип отлично работал как внутри виртуальной среды, так и в обычной среде.

Ответ 13

Похоже, что они отошли от битбакета и теперь находятся на github (https://github.com/pypa/setuptools)

Команда для запуска:

wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python

Ответ 14

Для меня это оказалось проблемой с разрешениями на site-packages. Поскольку это только моя среда разработки, я поднял разрешения и все снова работает:

sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/

Ответ 15

Если вы столкнулись с этой проблемой с приложением, установленным через conda, решение (как указано в этом отчете об ошибке) - это просто установить установочные инструменты с помощью:

conda install setuptools

Ответ 16

По-видимому, вам не хватает setuptools. Некоторые версии virtualenv используют дистрибутив вместо setuptools по умолчанию. Используйте опцию --setuptools при создании virtualenv или установите VIRTUALENV_SETUPTOOLS=1 в вашей среде.

Ответ 17

Я наткнулся на этот ответ, когда я пытался следовать это руководство для OSX. То, что сработало для меня, было после запуска python get-pip, я должен был ТАКЖЕ easy_install pip. Это фиксировало проблему отсутствия возможности запуска программы. У меня действительно было множество старых файлов macport. Возможно, это противоречило.

Ответ 18

В окнах я установил пип, загруженный из www.lfd.uci.edu/~gohlke/pythonlibs/, затем связал эту проблему.

Итак, я должен был сначала установить setuptools (easy_install).

Ответ 19

просто переустановите setuptools на:

$ sudo wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefefe74e
$ tar -zxvf setuptools-0.6c11.tar.gz
$ cd setuptools-0.6c11/
$ sudo python setup.py build
$ sudo python setup.py install
$ sudo pip install --upgrade setuptools

тогда все будет хорошо.

Ответ 20

Я использую CentOS 6.7, и мой python был просто обновлен с 2.6.6 до 2.7.11, после того как вы попробовали так много разных ответов, наконец, следующая делает работу:

sudo yum install python-devel

Надежда поможет кому-то в той же ситуации.

Ответ 21

Ни один из опубликованных ответов не работал у меня, поэтому я переустановил pip, и он сработает!

sudo apt-get install python-setuptools python-dev build-essential 

sudo easy_install pip 

pip install --upgrade setuptools

(ссылка: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/)

Ответ 22

Я столкнулся с этой проблемой после обновления моей сборки Ubuntu. Похоже, что они прошли и удалили инструменты настройки во всех моих виртуальных средах.

Чтобы исправить это, я снова установил виртуальную среду в целевой каталог. Это очистило отсутствующие инструменты настройки и снова заработало все.

например:.

~/RepoDir/TestProject$ virtualenv TestEnvironmentDir

Ответ 23

Для меня неплохо было использовать опцию --no-download для virtualenv (VIRTUALENV_NO_DOWNLOAD=1 tox для tox.)

Ответ 24

В Opensuse 42.1 исправлена ​​следующая проблема:

zypper in python-Pygments

Ответ 25

ImportError: нет модуля с именем pkg_resources: решение переустановить питон python с использованием следующей команды:

Шаг: 1 Войдите в пользователя root.

sudo su root

Шаг: 2 Удалите пакет python-pip, если он существует.

apt-get purge -y python-pip

Шаг: 3 Загрузка файлов с помощью команды wget (загрузка файла в pwd)

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

Шаг: 4 Запустите файл python.

python ./get-pip.py

Шаг: 5 Окончательная команда установки exicute.

apt-get install python-pip

Примечание. Пользователь должен быть root.

Ответ 26

Я испытал эту ошибку в своей среде Google App Engine. И pip install -t lib setuptools исправлена ​​проблема.

Ответ 27

Следующее решение, предложенное Tukadiya Ramesh, работало для меня, однако я хочу указать, что вы должны использовать правильные двоичные файлы/инструменты, соответствующие вашей среде, например, для меня у меня установлен python3.6 (python 3):

ImportError: нет модуля с именем pkg_resources: решение переустановить питон python с помощью следующей команды находится ниже.

Шаг: 1 Войдите в пользователя root.

sudo su root

Шаг: 2 Удалите пакет python-pip, если он существует.

apt-get purge -y python-pip (использовать python3-pip, если ошибка указывает на. /python 3/..)

Шаг: 3 Загрузите файлы с помощью команды wget (Загрузка файла в pwd)

wget https://bootstrap.pypa.io/get-pip.py ( доступна версия 3.2, используйте это в соответствии с вашим env)

Шаг: 4 Запустите файл python.

python./get-pip.py(, если ошибка связана с python 3, то вы хотите использовать python3 или python3.6 и т.д. [согласно вашему env.])

Шаг: 5 Завершите выполнение команды установки.

apt-get install python-pip ( снова, используйте python3-pip, как на шаге 2)

Примечание. Пользователь должен быть root.

P.S. эта проблема решена с моим менеджером обновлений в Ubuntu 16. Он продолжал сбой с ошибками, связанными с импортом Python. Если у вас такая же проблема, попробуйте запустить sudo aptd, если она выдает ошибку (извините, что у меня нет точной), связанной с Python, тогда вы столкнулись с той же проблемой, что и я.

Ответ 28

Если вы используете Python 3, вы должны использовать pip3 вместо pip. Команда выглядит как $ pip3 install requirements.txt

Ответ 29

У меня была та же проблема, когда я использовал easy-install для установки pip для python 2.7.14. Для меня решение было (может быть, не лучшим, но работало для меня, и это, вероятно, самый простой), что папка, содержащая easy-install.py, также содержала папку pkg_resources, и я скопировал эту папку в в той же папке, где мой pip-script.py script был (python27\Scripts). С тех пор я нашел его в папке python27\Lib\site-packages\pip-9.0.1-py2.7.egg\pip\_vendor, возможно, было бы лучшим решением для изменения файла pip-script.py для его импорта.

Ответ 30

yum -y install python-setuptools

я настраиваю Ceph, возникает проблема с выполнением команды "$ ceph-deploy new node1", и я выполняю команду "$ yum -y install python-setuptools", тогда проблема ушла.