Я развертываю приложение Django для dev-сервера и нажимаю эту ошибку, когда я запускаю pip install 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. Если я открываю консоль вне виртуального пространства, тогда присутствует pkg_resources
но я все равно получаю ту же ошибку. Любые идеи относительно того, почему pkg_resources не находится на пути?
Обновление за июль 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
. Но если вещи уже сломаны, не пытайтесь это сделать.
sudo python
хотя YMMV.
sudo apt-get install --reinstall python-pkg-resources
исправил его для меня в Debian. Кажется, что удаление некоторых пакетов .deb(извилистый набор в моем случае) сломал путь, используемый python для поиска пакетов
Я видел эту ошибку при попытке установить родекод в virtualenv на ubuntu 13.10. Для меня решение заключалось в том, чтобы запустить
pip install --upgrade setuptools
pip install --upgrade distribute
прежде чем запустить run_install roodecode.
pip install --upgrade setuptools
себе pip install --upgrade setuptools
мне.
pip install --upgrade setuptools --user
Это также случилось со мной. Я думаю, что проблема возникнет, если файл требований .txt содержит "распространять" запись, в то время как virtualenv использует setuptools. Pip попытается исправить настройки setuptools, чтобы освободить место для распространения, но, к сожалению, это не сработает наполовину.
Простое решение - удалить ваш текущий virtualenv, а затем создать новый virtualenv с аргументом -distribute.
Пример при использовании virtualenvwrapper:
$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt
pip install -U distribute
после активации среды.
В CentOS 6 установка пакета python-setuptools исправила его.
yum install python-setuptools
sudo apt-get install python3-setuptools
У меня была эта ошибка раньше, и самый высокий рейтинг дал мне ошибку, пытаясь загрузить файл 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 можно загрузить из:
curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
Нужно немного больше судо. Затем используется easy_install для установки pip. Работает.
sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo easy_install pip
sudo
не должно требоваться в virtualenv
После нескольких ответов, затем, обратившись к коллеге, я работал над 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
to
/Library/Python/2.7/site-packages/
Это может быть дешевое обходное решение, но это сработало для меня.
.
Если инструменты установки не существуют, вы можете попробовать установить пакеты системного сайта, набрав virtualenv --system-site-packages /DESTINATION DIRECTORY
, изменив последнюю часть, на которую вы хотите установить каталог. pkg_rousources.py
будет находиться под этим каталогом в lib/python2.7/site-packages
Для меня эта ошибка вызвана тем, что у меня был подкаталог под названием "сайт"! Я не знаю, является ли это ошибкой pip или нет, но я начал с:
/some/dir/requirements.txt /Некоторые/реж/сайт/
pip install -r requirements.txt не работает, что дает мне ошибку выше!
переименование подпапки с "сайта" на "src" исправило проблему! Может быть, пип ищет "сайты-пакеты"? Сумасшедший.
Для меня это оказалось проблемой с разрешениями на site-packages
. Поскольку это только моя среда разработки, я поднял разрешения и все снова работает:
sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/
Похоже, что они отошли от битбакета и теперь находятся на github (https://github.com/pypa/setuptools)
Команда для запуска:
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
У меня была и эта проблема сегодня. У меня только проблема внутри виртуального env.
Решение для меня заключалось в деактивации виртуального env, удалении, а затем удалении virtualenv с помощью pip и его повторной установке. После этого я создал новый виртуальный env для моего проекта, тогда пип отлично работал как внутри виртуальной среды, так и в обычной среде.
У меня была эта проблема, когда я активировал свой virtualenv как другой пользователь, чем тот, кто его создал. Кажется, это проблема разрешения. Я обнаружил это, когда я попробовал ответить @cwc и увидел это на выходе:
Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied
Возвращаясь к пользователю, создавшему virtualenv, тогда запуск исходной команды pip install
прошел без проблем. Надеюсь, это поможет!
По-видимому, вам не хватает setuptools. Некоторые версии virtualenv используют дистрибутив вместо setuptools по умолчанию. Используйте опцию --setuptools
при создании virtualenv или установите VIRTUALENV_SETUPTOOLS=1
в вашей среде.
Если вы столкнулись с этой проблемой с приложением, установленным через conda, решение (как указано в этом отчете об ошибке) - это просто установить установочные инструменты с помощью:
conda install setuptools
yum -y install python-setuptools
я настраиваю Ceph, возникает проблема с выполнением команды "$ ceph-deploy new node1"
, и я выполняю команду "$ yum -y install python-setuptools"
, тогда проблема ушла.
У меня была та же проблема, когда я использовал 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
для его импорта.
Если вы используете Python 3, вы должны использовать pip3 вместо pip. Команда выглядит как $ pip3 install requirements.txt
Следующее решение, предложенное 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, тогда вы столкнулись с той же проблемой, что и я.
Я испытал эту ошибку в своей среде Google App Engine. И pip install -t lib setuptools
исправлена проблема.
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.
В Opensuse 42.1 исправлена следующая проблема:
zypper in python-Pygments
Для меня неплохо было использовать опцию --no-download
для virtualenv (VIRTUALENV_NO_DOWNLOAD=1 tox
для tox.)
Я столкнулся с этой проблемой после обновления моей сборки Ubuntu. Похоже, что они прошли и удалили инструменты настройки во всех моих виртуальных средах.
Чтобы исправить это, я снова установил виртуальную среду в целевой каталог. Это очистило отсутствующие инструменты настройки и снова заработало все.
например:.
~/RepoDir/TestProject$ virtualenv TestEnvironmentDir
Ни один из опубликованных ответов не работал у меня, поэтому я переустановил 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/)
Я использую CentOS 6.7, и мой python был просто обновлен с 2.6.6 до 2.7.11, после того как вы попробовали так много разных ответов, наконец, следующая делает работу:
sudo yum install python-devel
Надежда поможет кому-то в той же ситуации.
просто переустановите 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
тогда все будет хорошо.
В окнах я установил пип, загруженный из www.lfd.uci.edu/~gohlke/pythonlibs/, затем связал эту проблему.
Итак, я должен был сначала установить setuptools (easy_install).
Я наткнулся на этот ответ, когда я пытался следовать это руководство для OSX. То, что сработало для меня, было после запуска python get-pip
, я должен был ТАКЖЕ easy_install pip
. Это фиксировало проблему отсутствия возможности запуска программы. У меня действительно было множество старых файлов macport. Возможно, это противоречило.
pip uninstall -y setuptools
а затемpip install setuptools==39.1.0
у меня работает на Anaconda в Windows 10.