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 에 따라 아래에 언급 된 부트 스트랩 스크립트는 더 이상 권장되는 설치 방법이 아닙니다.
부트 스트랩 스크립트 지침은 여전히 누군가에게 도움이되는 경우 아래에 남아 있습니다.
레거시 답변
나는 같은 것을 만났다 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
것이 더 쉽습니다. 그러나 이미 문제가 발생하면 시도하지 마십시오.
답변
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
또한 스크립트를 다운로드 할 수있는 다른 위치를 만들었습니다.
답변
이 답변 중 몇 가지를 시도한 후 동료에게 연락 한 후 우분투 16.04에서 나를 위해 일한 것은 다음과 같습니다.
pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip
필자의 경우 문제가있는 베개 3.1.1의 구 버전 일뿐입니다 (베개 4.x가 정상적으로 작동했습니다). 이제 해결되었습니다!