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

Я развертываю приложение Django на dev-сервере и нажимаю эту ошибку при запуске требований к установке pip.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 не находится на пути?

30 ответов


Обновление Июля 2018

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

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

эта проблема может сильно зависеть от вашей ОС и среды разработки. См. ответы legacy / other ниже, если вышеизложенное не работает для вас.

объяснение

данное сообщение об ошибке вызвано отсутствующим / сломанным Python setuptools пакета. За комментарий Мэтта М. и проблема setuptools #581, загрузочного скрипта приведено ниже уже не рекомендуемый способ установки.

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

Legacy Ответ

я столкнулся с такой же 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 добавляется.)

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

посмотреть Инструкция По Установке для дальнейшего подробности.


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


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

исправлено для меня в Debian. Похоже, что удаление некоторых .deb packages (twisted set в моем случае) нарушил путь, используемый python для поиска пакетов


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

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

перед запуском easy_install rhodecode.


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

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

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

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

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

yum install python-setuptools

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

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

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

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

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

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


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

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

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

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

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


я исправил ошибку с virtualenv, сделав это:

скопировано pkg_resources.py от

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

до

/Library/Python/2.7/site-packages/

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

.

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


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

/ некоторые/dir / требования.формат txt / some/dir/site/

pip install-r требования.txt не будет работать, давая мне вышеуказанную ошибку!

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


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

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

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


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

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


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

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

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

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

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

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


я наткнулся на этот ответ, когда я пытался следовать это руководство для OSX. То, что сработало для меня, было после запуска python get-pip, Мне тоже пришлось easy_install pip. Это исправило проблему невозможности запуска pip вообще. Я!--5-->сделал есть куча старых вещей macport установлен. Возможно, это противоречило друг другу.


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

поэтому я должен был сначала установить setuptools(easy_install).


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

$ 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

тогда все будет нормально.


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

sudo yum install python-devel

надеюсь помочь кому-то в такой же ситуации.


ни один из опубликованных ответов работал для меня, поэтому я переустановил 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/)


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

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

например:

~/RepoDir/TestProject$ virtualenv TestEnvironmentDir

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


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

zypper in python-Pygments

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

Шаг 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 Finaly exicute команда установки.

apt-get install python-pip

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


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


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

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

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

sudo su root

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

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

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

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

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

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

Шаг: 5 Finaly выполнить команду установки.

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

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

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


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


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


yum -y install python-setuptools

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


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

conda install setuptools