it-swarm.com.ru

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

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

375
igniteflow

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

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

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

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

Объяснение

Это сообщение об ошибке вызвано отсутствующим/поврежденным пакетом 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. Но если вещи уже сломаны, не пытайтесь это сделать.

566
cwc
Sudo apt-get install --reinstall python-pkg-resources

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

103
Marek

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

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

прежде чем я запустил easy_install rhodecode.

44
Ali Akdurak

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

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

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

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

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

yum install python-setuptools
15
Paul

У меня была эта ошибка ранее, и ответ с самым высоким рейтингом дал мне ошибку при попытке загрузить файл 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

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

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

14
ajtrichards

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

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

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

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

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

6
ptim

Я исправил ошибку с помощью virtualenv:

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

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

в 

/Library/Python/2.7/site-packages/

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

,.

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

5
mrgnw

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

/some/dir/requirements.txt/some/dir/site/

pip install -r82.txt не сработает, что выдает ошибку, описанную выше!

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

3
jdg

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

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

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

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

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

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

2
Martijn de Milliano

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

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

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

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

2
arno_v

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

conda install setuptools
2
Gabriel

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

1
Danilo Bargen

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

0
user3266968

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

0
Murat Çorlu

У меня была такая же проблема, когда я использовал 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, возможно, было бы лучшим решением изменить файл pip-script.py для его импорта.

0
B Kasza

yum -y install python-setuptools

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

0
Lucas

В Opensuse 42.1 исправлена ​​эта проблема:

zypper in python-Pygments
0
David Hamner

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

Sudo yum install python-devel

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

0
shellbye

В моем случае изначально у меня были установлены 2 версии Python, а позже я удалил старую. Так что при создании виртуальной среды

virtualenv venv

имел в виду неустановленный питон

Что сработало для меня 

python3 -m virtualenv venv

То же самое верно, когда вы пытаетесь использовать пипс. 

0
Afsan Abdulali Gujarati

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

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

например.:

~/RepoDir/TestProject$ virtualenv TestEnvironmentDir
0
Steve D.

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 Окончательно выполнить команду установки. 

apt-get install python-pip

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

0
Tukadiya Ramesh

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

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

0
metaphy

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

0
KitsuneYMG

простое решение заключается в том, что вы можете использовать conda для обновления setuptools или всей среды. (Специально для пользователей Windows.)

conda upgrade -c anaconda setuptools

если setuptools удален, вам необходимо установить setuptools снова.

conda install -c anaconda setuptools

если все эти методы не работают, вы можете обновить среду conda. Но я не рекомендую переустанавливать и удалять некоторые пакеты, потому что после этого ситуация усугубится.

0
weibin Wang

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

0
user13107

В Windows с Python 3.7 это работало для меня:

pip install --upgrade setuptools --user

--user устанавливает пакеты в ваш домашний каталог, который не требует прав администратора.

0
David Jablonski

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

0
Baczek

просто переустановите 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

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

0
Scott Yang