Python 3: ImportError „Brak modułu o nazwie Setuptools”


283

Mam problem z instalacją pakietów w Pythonie 3.

Zawsze instalowałem pakiety z setup.py install. Ale teraz, gdy próbuję zainstalować pakiet ansicolors, otrzymuję:

importerror „Brak modułu o nazwie Setuptools”

Nie mam pojęcia, co robić, ponieważ w przeszłości nie miałem zainstalowanych narzędzi konfiguracyjnych. Mimo to udało mi się zainstalować wiele pakietów setup.py installbez setuptools. Dlaczego mam teraz kupować setuptools?

Nie mogę nawet zainstalować setuptools, ponieważ mam Python 3.3, a setuptools nie obsługuje Python 3.

Dlaczego moje polecenie instalacji już nie działa?

Odpowiedzi:


532

Twój setup.pyplik potrzebuje setuptools. Niektóre pakiety Pythona były używane do distutilsdystrybucji, ale większość używa teraz setuptoolsbardziej kompletnego pakietu. Oto pytanie o różnice między nimi.

Aby zainstalować setuptoolsna Debianie:

sudo apt-get install python3-setuptools

W przypadku starszej wersji języka Python (Python 2.x):

sudo apt-get install python-setuptools

1
dzięki za ten post .. bardzo mi pomógł .. Wiele osób zaleca setuptools, ale nie jest możliwe zainstalowanie go w py3.3 .. rozpowszechnianie działa jak urok
świnka

22
musiałem zainstalować go z „python3”, aby działał:sudo apt-get install python3-setuptools
D.Steinel

1
Zainstalowałem python3 python3-pip python3-setuptoolsi zadziałało. Dzięki.
warchantua

3
Z jakiegoś powodu w Ubuntu 18.04 nie działa apt-get install python3-setuptools.
loretoparisi

1
@loretoparisi Mam ten sam problem, czy znalazłeś rozwiązanie dla Ubuntu 18.04?
Scott,

91

EDYCJA: Oficjalna strona dox setuptools :

Jeśli masz Python 2> = 2.7.9 lub Python 3> = 3.4 zainstalowany z python.org, będziesz już mieć pip i setuptools, ale będziesz musiał zaktualizować do najnowszej wersji:

W systemie Linux lub OS X:

pip install -U pip setuptools 

W systemie Windows:

python -m pip install -U pip setuptools

Dlatego reszta tego postu jest prawdopodobnie przestarzała (np. Niektóre linki nie działają).

Dystrybucja - to rozwidlenie setuptools, które „oferuje obsługę języka Python 3”. Instrukcja instalacji dla dystrybucji (setuptools) + pip:

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

Podobny problem tutaj .

AKTUALIZACJA: Dystrybucja wydaje się przestarzała, tj. Połączona w Setuptools: Dystrybucja jest przestarzałym rozwidleniem projektu Setuptools. Od wydania Setuptools 0.7 Setuptools i dystrybucja zostały połączone, a dystrybucja nie jest już utrzymywana. Cały bieżący wysiłek powinien odnosić się do projektu Setuptools i dokumentacji Setuptools.

Możesz spróbować z instrukcjami znajdującymi się na stronie pypi setuptools (nie testowałem tego, przepraszam :():

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

1
Dziękuję bardzo, nie jestem pewien, jak to rozwiązało mój problem, ale tak się stało. natychmiast! Miałem poważne problemy z instalacją dystrybucji. to musiało jakoś wymusić instalację, ponieważ sudo pip install distributenie działałoby. Moje problemy są udokumentowane na stronie stackoverflow.com/questions/16846742/...
Zależny

1
Działa to na różnych platformach (Win), podczas gdy zaakceptowana odpowiedź nie ma zastosowania. Dzięki!
fundead

Poważnie, ten facet potrzebuje więcej uznania niż mu się wydaje. Właśnie uratował mi dzień
Stephn_R

1
Adresy URL nie są już ważne. Czy możesz to sprawdzić?
mebada

22

Robiłem to w środowisku virtualenv na Oracle Linux 6.4 przy użyciu python-2.6, więc rozwiązania oparte na apt nie były dla mnie opcją, podobnie jak idee python-2.7. Moją poprawką było uaktualnienie mojej wersji setuptools, które zostały zainstalowane przez virtualenv:

pip install --upgrade setuptools

Potem mogłem zainstalować pakiety w virtualenv. Wiem, że na to pytanie wybrano już odpowiedź, ale mam nadzieję, że ta odpowiedź pomoże innym w mojej sytuacji.


1
Zauważ, że miał problem „Nie można usunąć wpisów z nieistniejącego pliku ...” Dodanie --ignore-install do powyższej komendy naprawiło to.
Kiki Jewell

10

pip uninstall setuptools

i wtedy:

pip install setuptools

To działa dla mnie i rozwiązuje mój problem.


To zadziałało dla mnie! Jakoś mój setuptools był starszą wersją 28.8. Ta deinstalacja i ponowna instalacja zmusiły ją do aktualizacji do wersji 48. A potem wszystko działało dobrze.
Joseph Lee

4

distributePakiet dostarcza Python 3-kompatybilną wersję setuptools: http://pypi.python.org/pypi/distribute

Użyj również, pipaby zainstalować moduły. Automatycznie wyszukuje zależności i instaluje je dla Ciebie.

Działa dla mnie dobrze z twoim pakietem:

[~] 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

System Windows 7:

Podałem tutaj kompletne rozwiązanie dla python selenium webdriver

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

PyPA zalecane narzędzie do instalacji i zarządzania pakietami Pythona pip. pipjest dołączony do Pythona 3.4 ( PEP 453 ), ale w przypadku starszych wersji oto sposób instalacji (w systemie Windows):

Pobierz 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

Kilka lat temu odziedziczyłem projekt Python (2.7.1) działający pod Django-1.2.3 i teraz zostałem poproszony o rozszerzenie go o możliwości QR. Masz ten sam problem i nie znalazłem też pip ani apt-get. Więc rozwiązałem to w zupełnie inny, ale łatwy sposób. I / bin / vi-edowałem plik setup.py i zmieniłem wiersz „z konfiguracji importu setuptools” na: „z konfiguracji importu distutils.core” To zrobiło to dla mnie, więc pomyślałem, że powinienem opublikować to dla innych użytkowników uruchamiających stare pytony . Pozdrawiam, Roger Vermeir

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.