6

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

8

Я развертываю приложение 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 ответ(ов)

1

На Debian решение проблемы для меня сработало следующее:

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

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

0

Я столкнулся с этой ошибкой при попытке установить RhodeCode в виртуальное окружение на Ubuntu 13.10. Для меня решение заключалось в том, чтобы сначала выполнить следующие команды:

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

После этого я смог успешно установить RhodeCode с помощью команды easy_install rhodecode. Попробуйте это, и, возможно, ваша проблема также решится.

0

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

Простое решение — удалить текущее виртуальное окружение и создать новое с аргументом --distribute.

Вот пример, используя virtualenvwrapper:

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

Надеюсь, это поможет!

0

После того как я попробовал несколько предложенных ответов и связался с коллегой, на Ubuntu 16.04 для меня сработало следующее:

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

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

0

В CentOS 6 установка пакета python-setuptools решила проблему. Вы можете сделать это с помощью следующей команды:

yum install python-setuptools
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь