Không có mô-đun có tên pkg_resource


451

Tôi đang triển khai ứng dụng Django cho máy chủ dev và gặp lỗi này khi chạy 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_resourcesdường như được phân phối với setuptools. Ban đầu tôi nghĩ rằng nó có thể không được cài đặt cho Python trong virtualenv, vì vậy tôi đã cài đặt setuptools 2.6(cùng phiên bản với Python) vào các gói trang web Python trong virtualenv bằng lệnh sau:

sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages

EDIT: Điều này chỉ xảy ra bên trong virtualenv. Nếu tôi mở một giao diện điều khiển bên ngoài virtualenv thì pkg_resourcescó mặt, nhưng tôi vẫn nhận được lỗi tương tự.

Bất kỳ ý tưởng như tại sao pkg_resourceskhông phải là trên con đường?


Khi cài đặt nltk, vấn đề tương tự xảy ra. Câu hỏi hay và câu trả lời hữu ích
laike9m

4
pip uninstall -y setuptoolsvà sau đó pip install setuptools==39.1.0làm việc cho tôi trên Anaconda trên Windows 10.
Ryan

1
@Ryan cũng làm việc cho tôi trên Ubuntu 16.04, cảm ơn bạn!
ElectRocnic

Câu trả lời:


634

Cập nhật tháng 7 năm 2018

Hầu hết mọi người bây giờ nên sử dụng pip install setuptools(có thể với sudo).

Một số có thể cần phải (lại) cài đặt các python-setuptoolsgói thông qua quản lý gói của họ ( apt-get install, yum install, vv).

Vấn đề này có thể phụ thuộc nhiều vào hệ điều hành và môi trường dev của bạn. Xem di sản / câu trả lời khác bên dưới nếu cách trên không phù hợp với bạn.

Giải trình

Thông báo lỗi này là do setuptoolsgói Python bị thiếu / hỏng . Theo bình luận và thiết lập công cụ của Matt M. # 581 , tập lệnh bootstrap được đề cập dưới đây không còn là phương thức cài đặt được đề xuất.

Các hướng dẫn kịch bản bootstrap sẽ vẫn ở bên dưới, trong trường hợp nó vẫn hữu ích cho bất kỳ ai.

Trả lời di sản

Tôi đã gặp điều tương tự ImportErrorngày hôm nay trong khi cố gắng sử dụng pip. Bằng cách nào đó setuptoolsgói đã bị xóa trong môi trường Python của tôi.

Để khắc phục sự cố, hãy chạy tập lệnh thiết lập cho setuptools:

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

(hoặc nếu bạn chưa wgetcài đặt (ví dụ: OS X), hãy thử

curl https://bootstrap.pypa.io/ez_setup.py | python

có thể có sudotrước.)

Nếu bạn có bất kỳ phiên bản nào distribute, hoặc bất kỳ phiên bản nào setuptoolsdưới 0,6, bạn sẽ phải gỡ cài đặt trước. *

Xem Hướng dẫn cài đặt để biết thêm chi tiết.


* Nếu bạn đã có một công việc distribute, nâng cấp nó lên "trình bao bọc tương thích" giúp bạn chuyển sang setuptoolsdễ dàng hơn. Nhưng nếu mọi thứ đã bị hỏng, đừng thử điều đó.


42
Đường ống uốn cong theo lệnh địa phương luôn làm tôi sợ, nhưng điều này hoạt động rất tốt. :) Tôi đã chạy sudo pythonmặc dù YMMV.
Nik Reiman

4
Theo Cygwin, tôi đã phải cài đặt gói python-setuptools . Điều này có easy_install hoạt động trở lại, đã gặp vấn đề tương tự. Sau đó, tôi sử dụng easy_install pipđể làm cho pip hoạt động trở lại. Vấn đề của tôi nảy sinh từ việc Cygwin nâng cấp Python từ 2.6 lên 2.7 sau khi cài đặt thứ gì đó không liên quan.
Steve Pitchers

5
Đây là câu trả lời hay nhất năm ngoái, nhưng đến giữa năm 2013, distributeđã lỗi thời và setuptoolslà sự kế thừa của nó. Tôi sẽ chỉnh sửa câu trả lời để cập nhật nó, nhưng tôi không chắc đó là cách tốt nhất để xử lý nó, vì vậy ai đó có thể hoàn nguyên chỉnh sửa, trong trường hợp này: Đi đến đây .
abarnert

1
URL này không hoạt động với tôi nhưng URL này đã hoạt động: pic.telecommunity.com/dist/ez_setup.py
ajtrichards

1
@Cerin: Sẽ hữu ích hơn cho mọi người nếu bạn nói những gì đã xảy ra khi bạn cố gắng. Và bạn đã sử dụng sudo, như @Nik đã lưu ý ở trên?
Michael Scheper

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

đã sửa nó cho tôi trong Debian. Có vẻ như gỡ cài đặt một số gói .deb (bộ xoắn trong trường hợp của tôi) đã phá vỡ đường dẫn python sử dụng để tìm gói


9
Tôi đang sử dụng Python 3 nên tôi phải chạy sudo apt-get install --reinstall python3-pkg-resource và nó đã sửa nó. Cảm ơn bạn!
Robert Townley

Tôi đoán không giúp được gì với yapf, tôi phải làm gì đó với python3 / python2
don sáng

53

Tôi đã thấy lỗi này trong khi cố gắng cài đặt rhodecode vào virtualenv trên ubfox 13.10. Đối với tôi giải pháp là chạy

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

trước khi tôi chạy easy_install rhodecode.


12
pip install --upgrade setuptoolsMột mình đã làm mánh khóe cho tôi.
Ryan Tuck

tôi cầnpip install --upgrade setuptools --user
dfrankow

5
Tôi không thể chạy pip install --upgrade setuptoolsdo cùng một lỗi:No module named pkg_resources
McLawrence

1
pip install --upgrade distributeđã thực hiện công việc khi sử dụng mô-đun venv của Python 3. --distributeCờ được hỗ trợ virtualenv của Python 2 , nhưng người ta phải cài đặt distributetrên các môi trường được tạo bởi venv.
Nertal

34

Nó cũng xảy ra với tôi. Tôi nghĩ vấn đề sẽ xảy ra nếu các yêu cầu có chứa mục "phân phối" trong khi virtualenv sử dụng setuptools. Pip sẽ cố gắng vá các công cụ thiết lập để nhường chỗ cho phân phối, nhưng thật không may, nó sẽ thất bại một nửa.

Giải pháp đơn giản là xóa virtualenv hiện tại của bạn sau đó tạo một virtualenv mới với đối số --distribution.

Một ví dụ nếu sử dụng virtualenvwrapper:

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

2
điều này giúp tôi khi không có giải pháp nào khác làm được (sử dụng Ubuntu 16.04)
MIkee

Đối với các môi trường được tạo bởi mô-đun venv của Python 3, chạy pip install -U distributesau khi kích hoạt môi trường sẽ thực hiện công việc.
Nertal

17

Trong CentOS 6 cài đặt gói python-setuptools đã sửa nó.

yum install python-setuptools

Điều này hoạt động trong Debian nếu khi bạn thay thế "yum" bằng "sudo apt-get". Ngoài ra: sudo apt-get install python3-setuptools
Gridtrak

Đây là một trong những đã làm điều đó cho tôi.
Tao Starbow

Tôi gặp vấn đề này trên CentOS 7 và python-setuptools đã được cài đặt, nhưng đã sudo yum reinstall python-setuptoolssửa nó.
coneslayer

Đã báo cáo lỗi cho CentOS.org bug.centos.org/view.php?id=14042
rjt

14

Tôi đã gặp lỗi này sớm hơn và câu trả lời được đánh giá cao nhất đã cho tôi một lỗi khi cố tải xuống ez_setup.pytệp. Tôi tìm thấy một nguồn khác để bạn có thể chạy lệnh:

curl http://peak.telecommunity.com/dist/ez_setup.py | python

Tôi thấy rằng tôi cũng phải sử dụng sudođể làm cho nó hoạt động, vì vậy bạn có thể cần phải chạy:

sudo curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python

Tôi cũng đã tạo một vị trí khác mà tập lệnh có thể được tải xuống từ:

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


Lệnh "curl" sẽ không cần sudo, vì vậy nó có thể là:curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
tombrown52

1
câu trả lời này đã cứu tôi với bổ sung "| sudo python", bởi vì "| python" không hoạt động! Cảm ơn
patti_jane

14

Sau khi thử một vài trong số những câu trả lời này, sau đó tiếp cận với một đồng nghiệp, điều làm việc cho tôi trên Ubuntu 16.04 là:

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

Trong trường hợp của tôi, đó chỉ là một phiên bản cũ của gối 3.1.1 đã gặp sự cố (gối 4.x hoạt động tốt) và giờ đã được giải quyết!


8

Cần thêm một chút sudo. Sau đó sử dụng easy_install để cài đặt pip. Làm.

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

1
sudokhông nên được yêu cầu trong virtualenv
igniteflow

Đúng, tôi chỉ gặp vấn đề tương tự mà không có virtualenv.
Tarion

5

Tôi đã sửa lỗi với virtualenv bằng cách này:

Đã sao chép pkg_resource.py từ

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

đến

/Library/Python/2.7/site-packages/

Đây có thể là một cách giải quyết rẻ tiền, nhưng nó đã làm việc cho tôi.

.

Nếu công cụ thiết lập không tồn tại, bạn có thể thử cài đặt các gói hệ thống-trang bằng cách nhập virtualenv --system-site-packages /DESTINATION DIRECTORY, thay đổi phần cuối cùng thành thư mục bạn muốn cài đặt. pkg_rousources.pysẽ nằm trong thư mục đó trong lib / python2.7 / site-gói


có một số dự án, giải pháp này là tốt nhất (cho tôi)
nguyên

3

Đối với tôi, lỗi này đã được gây ra bởi vì tôi có một thư mục con được gọi là "trang web"! Tôi không biết đây có phải là lỗi pip hay không, nhưng tôi đã bắt đầu với:

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

Pip install -r tests.txt sẽ không hoạt động, cho tôi lỗi ở trên!

đổi tên thư mục con từ "trang web" thành "src" đã khắc phục sự cố! Có lẽ pip đang tìm kiếm "gói trang web"? Khùng.


2

Tôi gặp vấn đề này khi tôi kích hoạt virtualenv của mình với tư cách là một người dùng khác với người tạo ra nó. Nó dường như là một vấn đề cho phép. Tôi đã phát hiện ra điều này khi tôi thử câu trả lời của @cwc và thấy điều này trong đầu ra:

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

Chuyển trở lại người dùng đã tạo virtualenv, sau đó chạy pip installlệnh ban đầu mà không gặp vấn đề gì. Hi vọng điêu nay co ich!


2

Tôi đã có vấn đề này ngày hôm nay là tốt. Tôi chỉ có vấn đề bên trong env ảo.

Giải pháp cho tôi là vô hiệu hóa env ảo, xóa và sau đó gỡ cài đặt virtualenv bằng pip và cài đặt lại nó. Sau đó, tôi đã tạo một env ảo mới cho dự án của mình, sau đó pip hoạt động tốt cả trong môi trường ảo như trong môi trường bình thường.


2

Có vẻ như họ đã rời khỏi bitbucket và hiện đang ở trên github ( https://github.com/pypa/setuptools )

Lệnh chạy là:

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

Tệp "/python/Python-3.5.1/Lib/urllib/request.py", dòng 162, trong tệp trả lại urlopen.open (url, dữ liệu, thời gian chờ) "/python/Python-3.5.1/Lib/urllib /request.py ", dòng 465, trong Tệp mở" /python/Python-3.5.1/Lib/urllib/request.py ", dòng 488, trong _open 'unknown_open', req) Tệp" /python/Python-3.5 .1 / Lib / urllib / request.py ", dòng 443, trong _call_chain result = func (* args) Tệp" /python/Python-3.5.1/Lib/urllib/request.py ", dòng 1310, trong unknown_open nâng cao URLError ('loại url không xác định:% s'% type) urllib.error.URLError: <urlopen lỗi loại url không xác định: https>
JDOaktown

2

Đối với tôi, nó hóa ra là một vấn đề quyền site-packages. Vì đó chỉ là môi trường dev của tôi, tôi đã tăng quyền và mọi thứ hoạt động trở lại:

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

2

Nếu bạn gặp phải sự cố này với một ứng dụng được cài đặt qua conda , giải pháp (như đã nêu trong báo cáo lỗi này) chỉ đơn giản là cài đặt các công cụ thiết lập với:

conda install setuptools

2

Trên Windows, với python 3.7, điều này làm việc với tôi:

pip install --upgrade setuptools --user

--user cài đặt các gói trong thư mục nhà của bạn, không yêu cầu quyền quản trị viên.


2

giải pháp đơn giản là bạn có thể sử dụng conda để nâng cấp setuptools hoặc toàn bộ môi trường. (Đặc biệt cho người dùng windows.)

conda upgrade -c anaconda setuptools

nếu setuptools bị xóa, bạn cần cài đặt lại setuptools.

conda install -c anaconda setuptools

nếu tất cả các phương thức này không hoạt động, bạn có thể nâng cấp môi trường conda. Nhưng tôi không khuyên bạn nên cài đặt lại và gỡ cài đặt một số gói vì sau đó nó sẽ làm trầm trọng thêm tình hình.


1

Rõ ràng bạn đang thiếu setuptools. Một số phiên bản virtualenv sử dụng phân phối thay vì setuptools theo mặc định. Sử dụng --setuptoolstùy chọn khi tạo virtualenv hoặc đặt VIRTUALENV_SETUPTOOLS=1trong môi trường của bạn.


1

Trong trường hợp của tôi, tôi đã cài đặt 2 phiên bản python và sau đó tôi đã xóa phiên bản cũ hơn. Vì vậy, trong khi tạo môi trường ảo

virtualenv venv

đã đề cập đến con trăn đã gỡ cài đặt

Những gì làm việc cho tôi

python3 -m virtualenv venv

Điều tương tự cũng đúng khi bạn đang cố gắng sử dụng pip.


0

Tôi đã bắt gặp câu trả lời này khi tôi đang cố gắng làm theo hướng dẫn này cho OSX . Những gì làm việc cho tôi là, sau khi chạy python get-pip, tôi phải C ALNG easy_install pip. Điều đó đã khắc phục vấn đề không thể chạy pip. Tôi đã có một loạt các công cụ macport cũ được cài đặt. Điều đó có thể đã mâu thuẫn.



0

chỉ cần cài đặt lại của bạn setuptoolsbằng cách:

$ 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

rồi mọi chuyện sẽ ổn


0

Tôi sử dụng CentOS 6.7 và con trăn của tôi chỉ nâng cấp từ 2.6.6 lên 2.7.11, sau khi thử rất nhiều câu trả lời khác nhau, cuối cùng, câu hỏi sau đây thực hiện công việc:

sudo yum install python-devel

Hy vọng giúp được ai đó trong tình huống tương tự.


0

Không có câu trả lời nào được đăng cho tôi, vì vậy tôi đã cài đặt lại pip và nó đã hoạt động!

sudo apt-get install python-setuptools python-dev build-essential 

sudo easy_install pip 

pip install --upgrade setuptools

(tham khảo: http://www.saltycrane.com/blog/2010/02/how-install-pip-ub Ubuntu / )


TracBack (cuộc gọi gần đây nhất vừa qua): Tệp "/ usr / bin / easy_install", dòng 5, trong <module> từ pkg_resource nhập load_entry_point ImportError: Không có mô-đun nào có tên 'pkg_resource'
JDOaktown

chủ sở hữu-Dimension-3000 chủ sở hữu # sudo easy_install pip TracBack (cuộc gọi gần đây nhất vừa qua): Tệp "/ usr / bin / easy_install", dòng 5, trong <module> từ pkg_resource nhập load_entry_point ImportError: Không có mô-đun có tên 'pkg_resours' -3000 chủ sở hữu # cài đặt pip - cài đặt nâng cấp TracBack (cuộc gọi gần đây nhất): Tệp "/ usr / bin / pip", dòng 5, trong <mô-đun> từ pkg_resource nhập load_entry_point NhậpError: Không có mô-đun có tên 'pkg_resource' -3000 chủ sở hữu #
JDOaktown

Lần đầu tiên bạn gỡ bỏ cài đặt phiên bản pip?
dùng13107

0

Tôi gặp vấn đề này sau khi cập nhật bản dựng Ubuntu của mình. Nó dường như đã trải qua và loại bỏ các công cụ thiết lập trong tất cả các môi trường ảo của tôi.

Để khắc phục điều này, tôi đã cài đặt lại môi trường ảo vào thư mục đích. Điều này làm sạch các công cụ thiết lập bị thiếu và có những thứ chạy lại.

ví dụ:

~/RepoDir/TestProject$ virtualenv TestEnvironmentDir

0

Đối với tôi, một cách khắc phục tốt là sử dụng --no-downloadtùy chọn để virtualenv ( VIRTUALENV_NO_DOWNLOAD=1 toxcho độc tố.)


0

Trên Opensuse 42.1 sau đây đã khắc phục sự cố này:

zypper in python-Pygments

0

ImportError: Không có mô-đun có tên pkg_resource: giải pháp là cài đặt lại python pip bằng cách sử dụng Lệnh sau.

Bước: 1 Đăng nhập vào người dùng root.

sudo su root

Bước: 2 Gỡ cài đặt gói python-pip nếu có.

apt-get purge -y python-pip

Bước: 3 Tải xuống tệp bằng lệnh wget (Tải xuống tệp trong pwd)

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

Bước: 4 Chạy tệp python.

python ./get-pip.py

Bước: 5 Lệnh cài đặt cuối cùng.

apt-get install python-pip

Lưu ý: Người dùng phải root.


0

Tôi đã gặp lỗi đó trong môi trường Google App Engine. Và pip install -t lib setuptoolskhắc phục vấn đề.


0

Nếu bạn đang sử dụng Python 3, bạn nên sử dụng pip3 thay vì pip. Lệnh trông giống như$ pip3 install requirements.txt

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.