Нет модуля с именем 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 в виртуальном окружении, поэтому я установил setuptools 2.6
(такую же версию, как и Python) в папку site-packages Python в виртуальном окружении с помощью следующей команды:
sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
EDIT: Эта проблема возникает только внутри виртуального окружения. Если я открою консоль вне виртуального окружения, то pkg_resources
присутствует, но я по-прежнему получаю ту же ошибку.
Есть ли идеи, почему pkg_resources
не находится в пути?
5 ответ(ов)
На Debian решение проблемы для меня сработало следующее:
sudo apt-get install --reinstall python-pkg-resources
Похоже, что удаление некоторых .deb пакетов (в моем случае это был twisted) сломало путь, который Python использует для поиска пакетов.
Я столкнулся с этой ошибкой при попытке установить RhodeCode в виртуальное окружение на Ubuntu 13.10. Для меня решение заключалось в том, чтобы сначала выполнить следующие команды:
pip install --upgrade setuptools
pip install --upgrade distribute
После этого я смог успешно установить RhodeCode с помощью команды easy_install rhodecode
. Попробуйте это, и, возможно, ваша проблема также решится.
Это тоже случилось со мной. Я думаю, проблема возникает, если в файле requirements.txt есть запись "distribute", в то время как ваш виртуальный окружение использует setuptools. В этом случае pip попытается совместить setuptools с distribute, но, к сожалению, это приведет к ошибке.
Простое решение — удалить текущее виртуальное окружение и создать новое с аргументом --distribute
.
Вот пример, используя virtualenvwrapper:
$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt
Надеюсь, это поможет!
После того как я попробовал несколько предложенных ответов и связался с коллегой, на Ubuntu 16.04 для меня сработало следующее:
pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip
В моем случае проблема заключалась лишь в устаревшей версии pillow 3.1.1, которая вызывала затруднения (pillow 4.x работала нормально), и теперь этоresolved!
В CentOS 6 установка пакета python-setuptools решила проблему. Вы можете сделать это с помощью следующей команды:
yum install python-setuptools
Как удалить все пакеты, установленные через pip?
Как обновить pip изнутри виртуального окружения?
Как установить psycopg2 с помощью "pip" в Python?
Как установить pip на macOS или OS X?
Как отменить последнюю миграцию?