Python 3: ImportError, Không có Module nào có tên Setuptools


282

Tôi gặp rắc rối với việc cài đặt các gói trong Python 3.

Tôi đã luôn luôn cài đặt gói với setup.py install. Nhưng bây giờ, khi tôi cố gắng cài đặt gói ansicolors tôi nhận được:

nhà nhập khẩu "Không có mô-đun có tên Setuptools"

Tôi không biết phải làm gì vì trước đây tôi không cài đặt công cụ cài đặt. Tuy nhiên, tôi đã có thể cài đặt nhiều gói setup.py installmà không cần setuptools. Tại sao tôi nên nhận setuptools ngay bây giờ?

Tôi thậm chí không thể cài đặt setuptools vì tôi có Python 3.3 và setuptools không hỗ trợ Python 3.

Tại sao lệnh cài đặt của tôi không hoạt động nữa?

Câu trả lời:


531

setup.pyTập tin của bạn cần setuptools. Một số gói Python được sử dụng distutilsđể phân phối, nhưng hầu hết bây giờ sử dụng setuptools, một gói hoàn chỉnh hơn. Đây là một câu hỏi về sự khác biệt giữa chúng.

Để cài đặt setuptoolstrên Debian:

sudo apt-get install python3-setuptools

Đối với phiên bản cũ hơn của Python (Python 2.x):

sudo apt-get install python-setuptools

1
cảm ơn vì bài đăng này .. đã giúp tôi rất nhiều..Nhiều người đang ủng hộ setuptools nhưng không thể cài đặt trong py3.3..có thể phân phối các tác phẩm như bùa mê
heo con

22
tôi đã phải cài đặt nó với "python3" để nó hoạt động:sudo apt-get install python3-setuptools
D.Steinel

1
Tôi đã cài đặt python3 python3-pip python3-setuptoolsvà nó hoạt động. Cảm ơn.
warchantua

3
Vì một số lý do trong Ubuntu 18.04, nó không hoạt động apt-get install python3-setuptools.
loretoparisi

1
@loretoparisi Tôi gặp vấn đề tương tự, bạn đã tìm ra giải pháp cho Ubuntu 18.04 chưa?
Scott

91

EDIT: Trang dot setuptools chính thức :

Nếu bạn đã cài đặt Python 2> = 2.7.9 hoặc Python 3> = 3.4 từ python.org, bạn sẽ có pip và setuptools, nhưng sẽ cần nâng cấp lên phiên bản mới nhất:

Trên Linux hoặc OS X:

pip install -U pip setuptools 

Trên Windows:

python -m pip install -U pip setuptools

Do đó, phần còn lại của bài đăng này có thể đã lỗi thời (ví dụ: một số liên kết không hoạt động).

Phân phối - là một ngã ba setuptools "cung cấp hỗ trợ Python 3". Hướng dẫn cài đặt để phân phối (setuptools) + pip:

curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
easy_install pip

Vấn đề tương tự ở đây .

CẬP NHẬT: Phân phối dường như đã lỗi thời, tức là được sáp nhập vào Setuptools: Phân phối là một nhánh không dùng được của dự án Setuptools. Kể từ khi phiên bản Setuptools 0.7, Setuptools và Phân phối đã được hợp nhất và Phân phối không còn được duy trì. Mọi nỗ lực liên tục nên tham khảo dự án Setuptools và tài liệu Setuptools.

Bạn có thể thử với các hướng dẫn được tìm thấy trên trang pypi setuptools (Tôi chưa kiểm tra điều này, xin lỗi :():

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
easy_install pip

1
Cảm ơn bạn rất nhiều, tôi không chắc làm thế nào điều này giải quyết vấn đề của tôi nhưng nó đã làm. ngay lập tức! Tôi đã gặp vấn đề nghiêm trọng khi cố gắng cài đặt phân phối. điều này phải bằng cách nào đó buộc cài đặt như sudo pip install distributekhông hoạt động. Các vấn đề của tôi được ghi lại tại stackoverflow.com/questions/16846742/ từ
Deepend

1
Điều này hoạt động đa nền tảng (Win), trong khi câu trả lời được chấp nhận là không áp dụng. Cảm ơn!
gây quỹ

Nghiêm túc mà nói, anh chàng này cần nhiều tín dụng hơn ngần ngại. Anh ấy vừa cứu ngày của tôi
Stephn_R

1
URLS không còn hiệu lực .. bạn có thể vui lòng kiểm tra không?
mebada

22

Tôi đã thực hiện điều này trong một virtualenv trên Oracle Linux 6.4 bằng python-2.6 vì vậy các giải pháp dựa trên apt không phải là một lựa chọn cho tôi, cũng không phải là ý tưởng python-2.7. Cách khắc phục của tôi là nâng cấp phiên bản setuptools đã được cài đặt bởi virtualenv:

pip install --upgrade setuptools

Sau đó, tôi đã có thể cài đặt các gói vào virtualenv. Tôi biết câu hỏi này đã có câu trả lời được chọn nhưng tôi hy vọng câu trả lời này sẽ giúp những người khác trong tình huống của tôi.


1
Lưu ý, nó đã gặp sự cố "Không thể xóa các mục khỏi tệp không tồn tại ..." Việc thêm --ignore-install vào lệnh trên đã khắc phục điều đó.
Kiki Jewell

10

pip uninstall setuptools

và sau đó:

pip install setuptools

Điều này làm việc cho tôi và khắc phục vấn đề của tôi.


Điều này làm việc cho tôi! Bằng cách nào đó, setuptools của tôi là phiên bản cũ hơn 28.8. Việc gỡ cài đặt và cài đặt lại này buộc nó phải cập nhật lên phiên bản 48. Và sau đó mọi thứ đều hoạt động tốt.
Joseph Lee

4

Các distributegói cung cấp một phiên bản Python 3 tương thích của setuptools: http://pypi.python.org/pypi/distribute

Ngoài ra, sử dụng pipđể cài đặt các mô-đun. Nó tự động tìm phụ thuộc và cài đặt chúng cho bạn.

Nó hoạt động tốt với tôi với gói của bạn:

[~] pip --version                                                              
pip 1.2.1 from /usr/lib/python3.3/site-packages (python 3.3)
[~] sudo pip install ansicolors                                                
Downloading/unpacking ansicolors
  Downloading ansicolors-1.0.2.tar.gz
  Running setup.py egg_info for package ansicolors

Installing collected packages: ansicolors
  Running setup.py install for ansicolors

Successfully installed ansicolors
Cleaning up...
[~]

3

Windows 7:

Tôi đã đưa ra một giải pháp hoàn chỉnh ở đây cho webthon python selenium

1. Setup easy install (windows - simplified)
    a. download ez.setup.py (https://bootstrap.pypa.io/ez_setup.py) from 'https://pypi.python.org/pypi/setuptools'
    b. move ez.setup.py to C:\Python27\
    c. open cmd prompt
    d. cd C:\Python27\
    e. C:\Python27\python.exe ez.setup.py install

1

Công cụ được đề xuất PyPA để cài đặt và quản lý các gói Python là pip. pipđược bao gồm trong Python 3.4 ( PEP 453 ), nhưng đối với các phiên bản cũ hơn đây là cách cài đặt nó (trên Windows):

Tải xuống https://bootstrap.pypa.io/get-pip.py

>c:\Python33\python.exe get-pip.py
Downloading/unpacking pip
Downloading/unpacking setuptools
Installing collected packages: pip, setuptools
Successfully installed pip setuptools
Cleaning up...

>c:\Python33\Scripts\pip.exe install pymysql
Downloading/unpacking pymysql
Installing collected packages: pymysql
Successfully installed pymysql
Cleaning up...

0

Vài năm trước tôi đã kế thừa một dự án python (2.7.1) chạy dưới Django-1.2.3 và bây giờ được yêu cầu cải tiến nó với khả năng QR. Có cùng một vấn đề và không tìm thấy pip hoặc apt-get. Vì vậy, tôi đã giải quyết nó theo một cách hoàn toàn khác nhưng dễ dàng. Tôi / bin / vi-ed the setup.py và thay đổi dòng "từ setuptools nhập thiết lập" thành: "từ distutils.core nhập thiết lập" Điều đó đã làm cho tôi, vì vậy tôi nghĩ rằng tôi nên đăng bài này cho những người dùng khác đang chạy trăn cũ . Trân trọng, Roger Vermeir

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.