come installare python distutils


96

Ho appena ottenuto un po 'di spazio su un server VPS (in esecuzione su Ubuntu 8.04) e sto cercando di installarci django. Il server ha installato Python 2.5, ma immagino che non sia un'installazione standard. Quando eseguo lo script di installazione per django, ottengo

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

Sono perplesso. Tutti gli articoli su Internet mi dicono come installare i moduli usando distutils. Ma come ottengo distutils stesso? Qualcuno può indicarmi l'archivio per le distutils? Ho cercato in /usr/lib/local/python2.5, /usr/lib/python2.5 ecc. E come previsto non ci sono distutils da trovare.

Risposte:


7

Il modo più semplice per installare setuptools quando non è già presente e non è possibile utilizzare un gestore di pacchetti è scaricare ez_setup.py ed eseguirlo con l'interprete Python appropriato. Funziona anche se hai più versioni di Python in giro: esegui ez_setup.py una volta con ogni Python.

Modifica: nota che le versioni recenti di Python 3 includono setuptools nella distribuzione, quindi non è più necessario installarli separatamente. Lo script qui menzionato è rilevante solo per le vecchie versioni di Python.


3
Grazie per la risposta, ma non ha funzionato. Ottengo questo errore "import _md5 ImportError: Nessun modulo denominato _md5". L'installazione di base di Python è piuttosto incasinata immagino. Vado con l'installazione locale. Grazie mille comunque.
Neo

3
La sintassi dello script sembra obsoleta. Per lo meno non funzionerà in python3.6, quindi al momento non è un'ottima soluzione.
Jmills

1
@Jmills Python dalla 3.4 in poi include setuptools, quindi non è necessario eseguire lo script nelle versioni recenti. La domanda è stata posta su Python 2.
Duncan

6
@ Duncan Oh sì, dice Python2, quindi questo errore può essere riscontrato installando Python3.6 su Ubuntu 16.04, questo è ciò che mi ha portato qui e sudo apt-get install python3-distutilslo risolverà. Ma la tua nota chiarisce la differenza di versione.
Jmills

2
Sembra che la 14.04 e la 16.04 abbiano entrambe "integrato" ma nella 18.04 è necessario installare python3-distutilsFWIW ...
rogerdpack

204

So che questa è una vecchia domanda, ma ho riscontrato lo stesso problema utilizzando Python 3.6 in Ubuntu e sono in grado di risolverlo utilizzando il seguente comando:

sudo apt-get install python3-distutils

7
Questo pacchetto letteralmente non esiste in Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Nicholi

7
Ha funzionato a meraviglia il 18.04
habitat il

2
Ottenere l'errore E: il pacchetto 'python3-distutils' non ha candidati all'installazione in Ubuntu 18.4
Ganesh

1
Come @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc

1
È possibile installarlo per la versione molto specifica. L'ho provato con sudo apt-get install python3.9-distutilsdopo l'output per (...) python3-distutilsdetto, è aggiornato alla versione 3.6 anche se ho impostato python3su 3.9. e ha funzionato
Lukas

21

Se non riesci a eseguire l'installazione con uno di questi:

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

Prova questo invece:

sudo apt-get install python-distutils-extra

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


Ricevo un errore: Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
mLstudent33

ma il mio java -versionaspetto va bene: 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

Qual è la differenza tra python3-distutils-extra(su Ubuntu16.04) e python3-distutils(impossibile individuare su python3-distutils-extra)?
skytree

Per packages.debian.org: "Questo pacchetto (python3-distutils-extra) fornisce funzioni aggiuntive a distutils e setuptools di Python." Quindi sembrerebbe che distutils sia una dipendenza di distutils-extra. Perché l'installazione di distutils-extra dovrebbe riuscire dove l'installazione di distutils fallisce, non posso dirlo.
Ben Amos,

15

puoi usare sudo apt-get install python3-distutilscon il permesso di root.

credo che abbia funzionato qui


12

Puoi installare il python-distutilspacchetto. sudo apt-get install python-distutilsdovrebbe essere sufficiente.


Non posso farlo. È un server VPS, non ho i privilegi sudo. Sto pensando di installare un pitone locale. O quello, o trovo l'archivio distutils per Python 2.5.
Neo

3
Se stai installando Python locale, passa a 2.6 o 2.7 Vengono forniti in distutilsbundle.
Manoj Govindan

2
Tutti i Python hanno incluso distutils dal 1999. Qui sembra uno degli stupidi sistemi operativi che divide la libreria standard in pacchetti arbitrari python e python-devel.
Éric Araujo

7

Ho riscontrato questo errore su un Beaglebone Black utilizzando la distribuzione Angstrom standard. Attualmente esegue Python 2.7.3, ma non include distutils. La soluzione per me era installare distutils. (Richiedeva privilegi su.)

    su
    opkg install python-distutils

Dopo quell'installazione, il comando che aveva precedentemente generato l'errore ha funzionato correttamente.

    python setup.py build


1

Il modulo non trovato probabilmente significa che i pacchetti non sono installati.

Debian ha deciso che distutils non è un pacchetto python di base, quindi non è incluso nelle ultime versioni dei sistemi operativi debian e basati su debian. Dovresti essere in grado di farlo

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

0

Se il sistema Python è bloccato (cioè i pacchetti del sistema operativo suddividono distutils in un pacchetto python-devel) e non puoi chiedere a un amministratore di sistema di installare il pezzo mancante, dovrai installare il tuo Python. Richiede alcuni file di intestazione e una toolchain del compilatore. Se non puoi averli, prova a compilare un Python su un computer identico e copialo.


0

Cercando in tutti i pacchetti correlati a python-distutils:

apt-cache search x

Ottengo python3-distutils-extra - miglioramenti al sistema di compilazione Python3

Quindi prova:

sudo apt-get install python3-distutils-extra

-9

Puoi provare a installare Python 2.6,

sudo apt-get install python2.6

Questo dovrebbe installare l'ultimo Python e anche il pacchetto distutils.


Non posso fare un sudo. Immagino che dovrò ottenere un'installazione locale di Python.
Neo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.