jak zainstalować distutils Pythona

90

Właśnie dostałem miejsce na serwerze VPS (działającym na Ubuntu 8.04) i próbuję zainstalować na nim django. Na serwerze jest zainstalowany python 2.5, ale myślę, że jest to niestandardowa instalacja. Kiedy uruchamiam skrypt instalacyjny dla django, otrzymuję

amitoj@ninja:~/Django-1.2.1$ python setup.py install
Traceback (most recent call last):
  File "setup.py", line 1, in <module>
    from distutils.core import setup
ImportError: No module named distutils.core

Jestem zdumiony. Wszystkie artykuły w Internecie mówią mi, jak zainstalować moduły za pomocą distutils. Ale jak mogę zdobyć same distutils? Czy ktoś może wskazać mi archiwum dla distutils? Szukałem w /usr/lib/local/python2.5, /usr/lib/python2.5 itd. I zgodnie z oczekiwaniami nie ma żadnych plików do znalezienia.

Neo
źródło

Odpowiedzi:

6

Najprostszym sposobem na zainstalowanie setuptools, gdy go tam nie ma i nie możesz użyć menedżera pakietów, jest pobranie pliku ez_setup.py i uruchomienie go za pomocą odpowiedniego interpretera Pythona. Działa to nawet jeśli masz wiele wersji Pythona: po prostu uruchom ez_setup.py raz z każdym Pythonem.

Edycja: zwróć uwagę, że najnowsze wersje Pythona 3 zawierają setuptools w dystrybucji, więc nie musisz już instalować oddzielnie. Wspomniany tutaj skrypt dotyczy tylko starszych wersji Pythona.

Duncan
źródło
3
Dzięki za odpowiedź, ale nie udało się. Otrzymuję ten błąd „import _md5 ImportError: brak modułu o nazwie _md5”. Podstawowa instalacja Pythona jest chyba dość schrzaniona. Pójdę z lokalną instalacją. W każdym razie wielkie dzięki.
Neo
2
Składnia tego skryptu wydaje się nieaktualna. Przynajmniej nie będzie działać w pythonie 3.6, więc obecnie nie jest to świetne rozwiązanie.
Jmills
1
@Jmills Python od 3.4 wzwyż zawiera narzędzia instalacyjne, więc nie ma potrzeby uruchamiania tego skryptu w najnowszych wersjach. Pytanie dotyczyło Pythona 2.
Duncan
5
@Duncan O tak, to mówi Python2 - więc ten błąd można napotkać instalując Python3.6 na Ubuntu 16.04, to jest to, co mnie tu przywiodło i sudo apt-get install python3-distutilsnaprawię to. Ale twoja uwaga wyjaśnia różnicę wersji.
Jmills
2
Wygląda na to, że 14.04, 16.04 oba mają to "wbudowane", ale w 18.04 trzeba zainstalować python3-distutilsFWIW ...
rogerdpack
202

Wiem, że to stare pytanie, ale właśnie natknąłem się na ten sam problem przy użyciu Pythona 3.6 w Ubuntu i jestem w stanie rozwiązać go za pomocą następującego polecenia:

sudo apt-get install python3-distutils
ettanany
źródło
6
Ten pakiet dosłownie nie istnieje w Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Nicholi
7
Działał jak urok 18.04
siedliska
2
Pojawia się błąd E: Pakiet „python3-distutils” nie ma kandydata do instalacji w Ubuntu 18.4
Ganesh
1
Tak samo jak @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc
Mam to zainstalowane dla python3.7, ale kiedy dla python3.6 nie pokazuje żadnego modułu distutils.utils, co mam zrobić?
Sarthak
20

Jeśli nie możesz zainstalować za pomocą jednego z poniższych:

sudo apt-get install python-distutils
sudo apt-get install python3-distutils

Spróbuj tego zamiast tego:

sudo apt-get install python-distutils-extra

Odniesienie: https://groups.google.com/forum/#!topic/beagleboard/RDlTq8sMxro

Ben Amos
źródło
Otrzymuję błąd: Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
mLstudent33
ale mój java -versionwygląd jest w porządku: java version "11.0.4" 2019-07-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)
mLstudent33
Jaka jest różnica między python3-distutils-extra(na Ubuntu16.04) a python3-distutils(nie można zlokalizować na python3-distutils-extra)?
SkyTree
Per packages.debian.org: "Ten pakiet (python3-distutils-extra) dostarcza dodatkowe funkcje do distutils i setuptools Pythona." Wydawałoby się więc, że distutils to zależność od distutils-extra. Dlaczego instalacja distutils-extra miałaby się powieść tam, gdzie instalacja distutils się nie powiedzie, nie mogę powiedzieć.
Ben Amos
15

możesz używać sudo apt-get install python3-distutilsza uprawnieniami roota.

wierzę, że tutaj zadziałało

Mohammad Heydari
źródło
12

Możesz zainstalować python-distutilspakiet. sudo apt-get install python-distutilspowinno wystarczyć.

Manoj Govindan
źródło
Nie mogę tego zrobić. To serwer VPS, nie mam uprawnień sudo. Myślę o zainstalowaniu lokalnego Pythona. Albo to, albo znajduję archiwum distutils dla Pythona 2.5.
Neo
3
Jeśli instalujesz lokalny przełącznik Pythona do wersji 2.6 lub 2.7, są distutilsdostarczane z pakietem.
Manoj Govindan
2
Cały Python zawiera distutils od 1999 roku. Wygląda na to, że jeden z głupich systemów operacyjnych, który podzielił bibliotekę standardową na dowolne pakiety python i python-devel.
Éric Araujo
7

Natknąłem się na ten błąd na Beaglebone Black przy użyciu standardowej dystrybucji Angstrom. Obecnie działa na nim Python 2.7.3, ale nie zawiera distutils. Rozwiązaniem dla mnie była instalacja distutils. (Wymagało to uprawnień su.)

    su
    opkg install python-distutils

Po tej instalacji poprzednio błędne polecenie działało poprawnie.

    python setup.py build
mightypile
źródło
2

Jeśli jesteś w scenariuszu, w którym używasz jednej z najnowszych wersji Ubuntu (lub wariantów, takich jak Linux Mint), takiej, która jest dostarczana z Pythonem 3.8, to NIE będziesz w stanie mieć Pythona3.7 distutils, alias nie będzie w stanie używać piplub pipenvz Pythonem 3.7, zobacz: Jak zainstalować python-distutils dla starszych wersji Pythona

Oczywiście używanie Pythona 3.8 nie stanowi problemu.

Zoltan Fedor
źródło
0

Jeśli systemowy Python jest zepsuty (tj. Pakiety systemu operacyjnego dzielą dystrybucję w pakiecie python-devel) i nie możesz poprosić administratora systemu o zainstalowanie brakującego elementu, musisz zainstalować własny Python. Wymaga plików nagłówkowych i zestawu narzędzi kompilatora. Jeśli nie możesz ich mieć, spróbuj skompilować Pythona na identycznym komputerze i po prostu go skopiować.

Éric Araujo
źródło
-8

Możesz spróbować zainstalować Python 2.6,

sudo apt-get install python2.6

Powinno to zainstalować najnowszy pakiet Pythona i distutils.

sheki
źródło
Nie mogę zrobić sudo. Myślę, że będę musiał zdobyć lokalną instalację Pythona.
Neo