pkg_resources라는 모듈이 없습니다.


452

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


nltk를 설치할 때 동일한 문제가 발생합니다. 좋은 질문과 유용한 답변
laike9m 7:20에서

4
pip uninstall -y setuptools다음 pip install setuptools==39.1.0윈도우 10에서 아나콘다에 나를 위해 일한
라이언

1
@Ryan은 Ubuntu 16.04에서도 저를 위해 일했습니다. 친절한 선생님 감사합니다!
ElectRocnic

답변:


634

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것이 더 쉽습니다. 그러나 이미 문제가 발생하면 시도하지 마십시오.


42
현지 명령에 컬을 피우는 것은 항상 나를 두려워하지만, 이것은 훌륭합니다. :) 나는 sudo pythonYMMV를 통해 달렸다 .
Nik Reiman

4
Cygwin에서 python-setuptools 패키지 를 설치해야했습니다 . 이것은 easy_install 이 다시 작동하여 동일한 문제가 발생했습니다. 그런 다음 easy_install pip핍을 다시 작동시키는 데 사용 했습니다. Cygwin에서 Python을 2.6에서 2.7로 업그레이드하여 관련이없는 것을 설치하면서 문제가 발생했습니다.
Steve Pitchers

5
이것은 작년에 가장 좋은 대답이었습니다. 그러나 2013 년 중반 현재, distribute더 이상 사용되지 않으며 setuptools후속 작업입니다. 답변을 편집하여 업데이트 할 것이지만 이것이 최선의 방법인지 잘 모르겠으므로 누군가 편집을 되돌릴 수 있습니다 . 이 경우 여기로 이동 .
abarnert

1
이 URL은 나를 위해 작동하지 않았지만이 URL은 작동하지 않았습니다. peak.telecommunity.com/dist/ez_setup.py
ajtrichards

1
@ 세린 : 당신이 시도했을 때 무슨 일이 있었는지 말하면 모두에게 더 도움이 될 것입니다. sudo@Nik이 위에서 언급했듯이을 사용 했 습니까?
Michael Scheper

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

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


10
파이썬 3을 사용하고 있으므로 sudo apt-get install --python3-pkg-resources를 다시 설치해야 수정했습니다. 감사합니다!
Robert Townley

내가 생각, 뭔가 python3 / python2와 함께 할 yapf에 도움이되지 않았다
밝은 돈

53

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

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

easy_install rhodecode를 실행하기 전에


12
pip install --upgrade setuptools혼자 나를 위해 트릭을했다.
Ryan Tuck

내가 필요pip install --upgrade setuptools --user
dfrankow

5
pip install --upgrade setuptools같은 오류로 인해 실행할 수 없습니다 .No module named pkg_resources
McLawrence

1
pip install --upgrade distributePython 3의 venv 모듈을 사용할 때 작업을 수행했습니다. Python 2의 virtualenv 지원되는 --distribute플래그이지만 distribute에 의해 작성된 환경 에 설치해야 합니다 venv.
Nirmal

34

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

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

virtualenvwrapper를 사용하는 경우의 예 :

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

2
이것은 다른 솔루션이
없었을

Python 3의 venv 모듈로 작성된 환경의 경우 환경 pip install -U distribute을 활성화 한 후 실행 하면 작업이 수행됩니다.
Nirmal

17

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

yum install python-setuptools

"yum"을 "sudo apt-get"으로 바꾸면 데비안에서 작동합니다. 또한 : sudo apt-get install python3-setuptools
gridtrak

이것이 나를 위해 한 것입니다.
Tao Starbow

CentOS 7 에서이 문제가 있었고 python-setuptools가 이미 설치되었지만 sudo yum reinstall python-setuptools수정했습니다.
coneslayer

CentOS.org에 버그를보고했습니다 bugs.centos.org/view.php?id=14042
rjt

14

나는이 오류가 더 일찍 있었고 가장 높은 등급의 대답은 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


"curl"명령은 sudo가 필요하지 않으므로 다음과 같이 될 수 있습니다.curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
tombrown52

1
이 답변은 "| python"만으로는 작동하지 않기 때문에 "| sudo python"추가로 저를 구했습니다! 감사합니다
patti_jane

14

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

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

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


8

조금 더 sudo가 필요했습니다. 그런 다음 easy_install을 사용하여 pip를 설치하십시오. 공장.

sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo easy_install pip

1
sudovirtualenv에 필요하지 않아야 함
점화 흐름

사실, virtualenv없이 동일한 문제가 발생했습니다.
Tarion

5

다음을 수행하여 virtualenv의 오류를 수정했습니다.

복사 된 pkg_resources.py

/Library/Python/2.7/site-packages/setuptools

/Library/Python/2.7/site-packages/

이것은 저렴한 해결 방법 일 수 있지만 그것은 나를 위해 일했습니다.

.

설치 도구가 없으면을 입력 virtualenv --system-site-packages /DESTINATION DIRECTORY하여 마지막 부분을 설치하려는 디렉토리로 변경 하여 시스템 사이트 패키지 설치를 시도 할 수 있습니다 . pkg_rousources.pylib / python2.7 / site-packages의 해당 디렉토리에 있습니다.


예, 일부 프로젝트에서는이 솔루션이 가장 좋습니다 (나를 위해)
nguyên

3

나를 위해, "site"라는 하위 디렉토리가 있기 때문에이 오류가 발생했습니다! 이것이 핍 버그인지 아닌지는 모르겠지만 시작했습니다.

/some/dir/requirements.txt / some / dir / site /

pip install -r requirements.txt가 작동하지 않아 위의 오류가 발생했습니다!

"사이트"에서 "src"로 하위 폴더의 이름을 바꾸면 문제가 해결되었습니다! pip가 "site-packages"를 찾고 있습니까? 미친.


2

virtualenv를 만든 사용자가 아닌 다른 사용자로 virtualenv를 활성화했을 때이 문제가 발생했습니다. 권한 문제인 것 같습니다. @cwc의 답변을 시도하고 출력에서 ​​이것을 보았을 때 이것을 발견했습니다.

Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied

virtualenv를 만든 사용자로 다시 전환 한 다음 원래 pip install명령 을 실행 해도 문제가 발생하지 않았습니다. 도움이 되었기를 바랍니다!


2

오늘도이 문제가있었습니다. 가상 환경 내에서만 문제가 발생했습니다.

나를위한 해결책은 가상 환경을 비활성화하고 pip로 virtualenv를 삭제 한 다음 제거하고 다시 설치하는 것입니다. 그 후 프로젝트에 대한 새로운 가상 환경을 만든 다음 pip는 가상 환경 내부에서 일반 환경과 마찬가지로 잘 작동했습니다.


2

비트 버킷에서 멀리 떨어져서 현재 github에 있습니다 ( https://github.com/pypa/setuptools )

실행할 명령은 다음과 같습니다.

wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python

urlopen의 파일 "/python/Python-3.5.1/Lib/urllib/request.py", 162 행, returner.open (url, data, timeout) return 파일 "/python/Python-3.5.1/Lib/urllib /request.py ", 465 행, 열린 파일"/python/Python-3.5.1/Lib/urllib/request.py ", 488 행, _open 'unknown_open', req) 파일"/python/Python-3.5 .1 / Lib / urllib / request.py ", _call_chain 결과 = func (* args) 파일의 443 행,"/python/Python-3.5.1/Lib/urllib/request.py ", 1310 행, unknown_open raise URLError ( '알 수없는 URL 유형 : % s'% 유형) urllib.error.URLError : <urlopen 오류 알 수없는 URL 유형 : https>
JDOaktown

2

나를 위해, 그것은에 대한 사용 권한 문제로 밝혀졌습니다 site-packages. 그것은 단지 내 개발 환경이기 때문에 권한을 높이고 모든 것이 다시 작동합니다.

sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/

2

conda 를 통해 설치된 응용 프로그램에서이 문제가 발생하면 이 버그 보고서에 명시된대로 해결책은 다음과 같이 setup-tools를 설치하는 것입니다.

conda install setuptools

2

Windows에서 python 3.7을 사용하면 다음과 같이 작동했습니다.

pip install --upgrade setuptools --user

--user 관리자 권한이 필요없는 홈 디렉토리에 패키지를 설치합니다.


2

간단한 해결 방법은 conda를 사용하여 setuptools 또는 전체 환경을 업그레이드 할 수 있다는 것입니다. (특히 Windows 사용자의 경우)

conda upgrade -c anaconda setuptools

setuptools가 제거되면 setuptools를 다시 설치해야합니다.

conda install -c anaconda setuptools

이러한 모든 방법이 작동하지 않으면 conda 환경을 업그레이드 할 수 있습니다. 그러나 일부 패키지를 다시 설치하고 제거해야 이후에는 상황이 악화 될 수 있으므로 권장하지 않습니다.


1

분명히 당신은 setuptools를 놓치고 있습니다. 일부 virtualenv 버전은 기본적으로 setuptools 대신 배포를 사용합니다. --setuptoolsvirtualenv를 작성할 때 옵션을 사용 하거나 VIRTUALENV_SETUPTOOLS=1환경에서 설정하십시오 .


1

필자의 경우 처음에는 2 개의 파이썬 버전이 설치되어 있었고 나중에 이전 버전을 삭제했습니다. 가상 환경을 만드는 동안

virtualenv venv

제거 된 파이썬을 언급하고있었습니다.

나를 위해 일한 것

python3 -m virtualenv venv

pip를 사용하려고 할 때도 마찬가지입니다.


0

OSX에 대한이 안내서 를 따르려고 할 때이 답변 을 보았습니다 . 나를 위해 일한 것은 달리고 python get-pip난 후에도 함께 해야했습니다 easy_install pip. 그것은 pip를 전혀 실행할 수 없다는 문제를 해결했습니다. 나는 설치 된 macport 물건의 무리가 있습니다. 충돌했을 수 있습니다.



0

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

그러면 모든 것이 잘 될 것입니다.


0

CentOS 6.7을 사용하고 있으며 파이썬은 2.6.6에서 2.7.11로 업그레이드되었습니다. 많은 다른 답변을 시도한 후에 마지막으로 다음 작업이 수행됩니다.

sudo yum install python-devel

같은 상황에있는 사람을 도와주세요.


0

게시 된 답변 중 어느 것도 나를 위해 일하지 않았으므로 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/ )


역 추적 (가장 최근 호출) : pkg_resources의 <module>에있는 "/ usr / bin / easy_install"파일 5 행 import load_entry_point ImportError : 'pkg_resources'라는 모듈 없음
JDOaktown

owner-Dimension-3000 owner # sudo easy_install pip Traceback (가장 최근 호출) : pkg_resources의 <module>에서 파일 "/ usr / bin / easy_install", 라인 5, import load_entry_point ImportError : 'pkg_resources'소유자 -Dimension이라는 모듈 없음 -3000 owner # pip install --upgrade setuptools Traceback (가장 최근 호출) : pkg_resources의 <module>에있는 "/ usr / bin / pip"파일 5 행 import load_entry_point ImportError : 이름이 'pkg_resources'owner-Dimension 인 모듈 없음 -3000 소유자 #
JDOaktown 2016 년

설치된 pip 버전을 먼저 제거 했습니까?
user13107

0

우분투 빌드를 업데이트 한 후이 문제가 발생했습니다. 모든 가상 환경에서 설정 도구를 살펴보고 제거 한 것 같습니다.

이를 해결하기 위해 가상 환경을 대상 디렉토리에 다시 설치했습니다. 이로 인해 누락 된 설정 도구가 정리되었고 작업이 다시 실행되었습니다.

예 :

~/RepoDir/TestProject$ virtualenv TestEnvironmentDir

0

나에게 좋은 해결책은 --no-download옵션을 virtualenv ( VIRTUALENV_NO_DOWNLOAD=1 toxtox 용) 를 사용하는 것이 었습니다 .



0

ImportError : pkg_resources라는 모듈이 없습니다. 해결책은 다음 명령을 사용하여 python pip를 다시 설치하는 것입니다.

1 단계 : 1 루트 사용자로 로그인하십시오.

sudo su root

단계 : 2 python-pip 패키지가있는 경우 제거합니다.

apt-get purge -y python-pip

3 단계 : 3 wget 명령을 사용하여 파일 다운로드 (에서 파일 다운로드 pwd)

wget https://bootstrap.pypa.io/get-pip.py

4 단계 : 4 파이썬 파일을 실행합니다.

python ./get-pip.py

단계 : 5 Finali exicute 설치 명령.

apt-get install python-pip

참고 : 사용자는 root 여야합니다.


0

Google App Engine 환경에서 오류가 발생했습니다. 그리고 pip install -t lib setuptools문제를 해결했습니다.


0

Python 3을 사용하는 경우 pip 대신 pip3을 사용해야합니다. 명령은 다음과 같습니다$ pip3 install requirements.txt

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.