Wie installiere ich Python Distutils?

86

Ich habe gerade etwas Speicherplatz auf einem VPS-Server (läuft unter Ubuntu 8.04) und versuche, Django darauf zu installieren. Auf dem Server ist Python 2.5 installiert, aber ich denke, es ist keine Standardinstallation. Wenn ich ein Installationsskript für Django ausführe, bekomme ich

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

Ich bin ratlos. In allen Artikeln im Internet erfahren Sie, wie Sie Module mit distutils installieren. Aber wie bekomme ich Distutils selbst? Kann mich jemand auf das Archiv für Distutils verweisen? Ich habe in /usr/lib/local/python2.5, /usr/lib/python2.5 usw. nachgesehen und wie erwartet sind keine Distutils zu finden.

Neo
quelle

Antworten:

7

Die einfachste Möglichkeit, setuptools zu installieren, wenn es noch nicht vorhanden ist und Sie keinen Paketmanager verwenden können, besteht darin, ez_setup.py herunterzuladen und mit dem entsprechenden Python-Interpreter auszuführen. Dies funktioniert auch, wenn Sie mehrere Python-Versionen haben: Führen Sie ez_setup.py einfach einmal mit jedem Python aus.

Bearbeiten: Beachten Sie, dass neuere Versionen von Python 3 Setuptools in der Distribution enthalten, sodass Sie diese nicht mehr separat installieren müssen. Das hier erwähnte Skript ist nur für alte Versionen von Python relevant.

Duncan
quelle
2
Danke für die Antwort, aber es hat nicht funktioniert. Ich erhalte den Fehler "import _md5 ImportError: Kein Modul namens _md5". Die grundlegende Python-Installation ist ziemlich durcheinander, denke ich. Ich werde mit der lokalen Installation gehen. Trotzdem vielen Dank.
Neo
1
Die Syntax dieses Skripts scheint veraltet zu sein. Zumindest läuft es nicht in Python3.6, also derzeit keine großartige Lösung.
Jmills
@Jmills Python ab 3.4 enthält Setuptools, sodass dieses Skript in neueren Versionen nicht mehr ausgeführt werden muss. Die Frage wurde über Python 2 gestellt.
Duncan
5
@Duncan Oh ja, es heißt Python2 - also kann dieser Fehler bei der Installation von Python3.6 unter Ubuntu 16.04 auftreten. Das hat mich hierher gebracht und sudo apt-get install python3-distutilswird ihn beheben. Ihr Hinweis verdeutlicht jedoch den Versionsunterschied.
Jmills
1
Es scheint, dass 14.04, 16.04 beide "eingebaut" haben, aber in 18.04 müssen Sie python3-distutilsFWIW installieren ...
Rogerdpack
195

Ich weiß, dass dies eine alte Frage ist, aber ich stoße mit Python 3.6 in Ubuntu auf dasselbe Problem und kann es mit dem folgenden Befehl lösen:

sudo apt-get install python3-distutils
ettanany
quelle
6
Dieses Paket existiert buchstäblich nicht in Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Nicholi
7
Arbeitete wie ein Zauber am 18.04.
Lebensräume
2
Fehler E erhalten: Paket 'python3-distutils' hat keinen Installationskandidaten in Ubuntu 18.4
Ganesh
1
Gleich wie @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
Hugo Blanc
Ich habe dies für Python3.7 installiert, aber wenn für Python3.6 kein Modul gefunden wird distutils.utils, Was soll ich tun?
Sarthak
18

Wenn Sie mit beiden nicht installieren können:

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

Versuchen Sie stattdessen Folgendes:

sudo apt-get install python-distutils-extra

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

Ben Amos
quelle
Ich Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
erhalte
aber mein java -versionsieht okay aus: 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
Was ist der Unterschied zwischen python3-distutils-extra(unter Ubuntu16.04) und python3-distutils(kann nicht unter python3-distutils-extra gefunden werden)?
Skytree
Per packages.debian.org: "Dieses Paket (python3-distutils-extra) bietet zusätzliche Funktionen für Pythons distutils und setuptools." Es scheint also, dass Distutils eine Abhängigkeit von Distutils-Extra ist. Warum die Installation von distutils-extra erfolgreich sein würde, wenn die Installation von distutils fehlschlägt, kann ich nicht sagen.
Ben Amos
14

Sie können sudo apt-get install python3-distutilsmit Root-Berechtigung verwenden.

Ich glaube, es hat hier funktioniert

Mohammad Heydari
quelle
12

Sie können das python-distutilsPaket installieren . sudo apt-get install python-distutilssollte ausreichen.

Manoj Govindan
quelle
Kann das nicht machen. Es ist ein VPS-Server, ich habe keine Sudo-Berechtigungen. Ich denke darüber nach, eine lokale Python zu installieren. Entweder das, oder ich finde distutils Archiv für Python 2.5.
Neo
3
Wenn Sie den lokalen Python-Switch auf 2.6 oder 2.7 installieren, werden diese distutilsmitgeliefert.
Manoj Govindan
2
Alle Python-Versionen enthalten seit 1999 Distutils. Hier sieht es aus wie eines der dummen Betriebssysteme, die die Standardbibliothek in beliebige Python- und Python-Entwicklungspakete aufteilen.
Éric Araujo
7

Ich bin auf diesem Beaglebone Black mit der Standard-Angstrom-Distribution auf diesen Fehler gestoßen. Derzeit wird Python 2.7.3 ausgeführt, Distutils sind jedoch nicht enthalten. Die Lösung für mich war, Distutils zu installieren. (Es waren su Privilegien erforderlich.)

    su
    opkg install python-distutils

Nach dieser Installation lief der zuvor fehlerhafte Befehl einwandfrei.

    python setup.py build
mächtig
quelle
1

Wenn Sie sich in einem Szenario befinden, in dem Sie eine der neuesten Versionen von Ubuntu (oder Varianten wie Linux Mint) verwenden, die mit Python 3.8 geliefert werden distutils, können Sie Python3.7 NICHT verwenden , Alias ​​kann nicht verwendet werden pipoder pipenvmit Python 3.7, siehe: So installieren Sie Python-Distutils für alte Python-Versionen

Offensichtlich ist die Verwendung von Python3.8 kein Problem.

Zoltan Fedor
quelle
0

Wenn das System Python nicht funktioniert (dh die Betriebssystempakete teilen Distutils in ein Python-Entwicklungspaket) und Sie keinen Systemadministrator bitten können, das fehlende Teil zu installieren, müssen Sie Ihr eigenes Python installieren. Es erfordert einige Header-Dateien und eine Compiler-Toolchain. Wenn Sie diese nicht haben können, versuchen Sie, einen Python auf einem identischen Computer zu kompilieren und ihn einfach zu kopieren.

Éric Araujo
quelle
-8

Sie können versuchen, Python 2.6 zu installieren.

sudo apt-get install python2.6

Dies sollte das neueste Python- und auch Distutils-Paket installieren.

sheki
quelle
Ich kann kein Sudo machen. Ich denke, ich muss eine lokale Installation von Python bekommen.
Neo