[python] 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. 처음에는 이것이 virtualenv의 Python에 설치되지 않을 것이라고 생각했기 때문에 setuptools 2.6다음 명령을 사용하여 virtualenv의 Python 사이트 패키지에 (Python과 동일한 버전)을 설치했습니다 .

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길에 있지 않은지에 대한 아이디어 가 있습니까?



답변

2018 년 7 월 업데이트

대부분의 사람들은 이제 pip install setuptools(와 함께 sudo)를 사용해야 합니다.

일부는 (재) 설치해야 할 수도 있습니다 python-setuptools 자신의 패키지 관리자를 통해 (패키지 apt-get install, yum install등).

이 문제는 OS 및 개발 환경에 따라 크게 달라질 수 있습니다. 위의 방법으로 문제가 해결되지 않으면 아래의 레거시 / 기타 답변을 참조하십시오.

설명

이 오류 메시지는 누락되거나 손상된 Python setuptools패키지로 인해 발생 합니다. Per Matt M. 님의 댓글과 setuptools 문제 # 581 에 따라 아래에 언급 된 부트 스트랩 스크립트는 더 이상 권장되는 설치 방법이 아닙니다.

부트 스트랩 스크립트 지침은 여전히 ​​누군가에게 도움이되는 경우 아래에 남아 있습니다.

레거시 답변

나는 같은 것을 만났다 ImportErrorpip를 사용하는 동안 오늘도 . 어떻게 든 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

데비안에서 수정했습니다. 일부 .deb 패키지 (내 경우에는 꼬인 세트)를 제거하면 파이썬이 패키지를 찾는 데 사용하는 경로가 깨졌습니다.


답변

우분투 13.10의 가상 환경에 rhodecode를 설치하려고 할 때이 오류가 나타났습니다. 나를 위해 솔루션을 실행하는 것이 었습니다

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

easy_install rhodecode를 실행하기 전에


답변

나에게도 일어났다. virtualenv가 setuptools를 사용하는 경우 requirements.txt에 “distribute”항목이 포함되어 있으면 문제가 발생한다고 생각합니다. Pip은 배포 할 공간을 만들기 위해 setuptools를 패치하려고 시도하지만 불행히도 반쯤 실패합니다.

쉬운 해결책은 현재 virtualenv를 삭제 한 다음 –distribute 인수를 사용하여 새로운 virtualenv를 작성하는 것입니다.

virtualenvwrapper를 사용하는 경우의 예 :

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


답변

CentOS 6에서 python-setuptools 패키지를 설치하면 수정되었습니다.

yum install python-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

또한 스크립트를 다운로드 할 수있는 다른 위치를 만들었습니다.

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


답변

이 답변 중 몇 가지를 시도한 후 동료에게 연락 한 후 우분투 16.04에서 나를 위해 일한 것은 다음과 같습니다.

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

필자의 경우 문제가있는 베개 3.1.1의 구 버전 일뿐입니다 (베개 4.x가 정상적으로 작동했습니다). 이제 해결되었습니다!