cómo instalar python distutils

90

Acabo de obtener algo de espacio en un servidor VPS (que se ejecuta en ubuntu 8.04) y estoy intentando instalar django en él. El servidor tiene instalado Python 2.5, pero supongo que no es una instalación estándar. Cuando ejecuto el script de instalación para django, obtengo

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

Estoy perplejo. Todos los artículos en Internet me dicen cómo instalar módulos usando distutils. Pero, ¿cómo obtengo distutils? ¿Alguien puede señalarme el archivo de distutils? Busqué en /usr/lib/local/python2.5, /usr/lib/python2.5, etc., y como era de esperar, no se encontraron distutils.

Neo
fuente

Respuestas:

6

La forma más sencilla de instalar setuptools cuando aún no está allí y no puede usar un administrador de paquetes es descargar ez_setup.py y ejecutarlo con el intérprete de Python apropiado. Esto funciona incluso si tiene varias versiones de Python: simplemente ejecute ez_setup.py una vez con cada Python.

Editar: tenga en cuenta que las versiones recientes de Python 3 incluyen herramientas de configuración en la distribución, por lo que ya no es necesario instalarlas por separado. El script mencionado aquí solo es relevante para versiones antiguas de Python.

Duncan
fuente
3
Gracias por la respuesta, pero no funcionó. Recibo este error "import _md5 ImportError: No module named _md5". La instalación básica de Python está bastante jodida, supongo. Iré con la instalación local. Muchas gracias de todos modos.
Neo
2
La sintaxis de ese script parece desactualizada. Como mínimo, no se ejecutará en python3.6, por lo que actualmente no es una gran solución.
Jmills
1
@Jmills Python desde 3.4 en adelante incluye herramientas de configuración, por lo que no es necesario ejecutar ese script en versiones recientes. La pregunta se hizo sobre Python 2.
Duncan
5
@Duncan Oh, sí, dice Python2, por lo que este error se puede encontrar al instalar Python3.6 en Ubuntu 16.04, eso es lo que me trajo aquí y sudo apt-get install python3-distutilslo solucionará. Pero su nota aclara la diferencia de versión.
Jmills
2
Parece que 14.04, 16.04 lo tienen "integrado" pero en 18.04 necesitas instalar python3-distutilsFWIW ...
rogerdpack
202

Sé que esta es una pregunta antigua, pero acabo de encontrar el mismo problema usando Python 3.6 en Ubuntu, y puedo resolverlo usando el siguiente comando:

sudo apt-get install python3-distutils
ettanany
fuente
6
Este paquete, literalmente, no existe en Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Nicholi
7
Funcionó como un encanto el 18.04
hábitats
2
Obteniendo el error E: El paquete 'python3-distutils' no tiene candidato de instalación en Ubuntu 18.4
Ganesh
1
Igual que @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc
Tengo esto instalado para python3.7 pero cuando para python3.6 no muestra ningún módulo distutils.utils, ¿qué debo hacer?
Sarthak
20

Si no puede instalar con alguno de estos:

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

Prueba esto en su lugar:

sudo apt-get install python-distutils-extra

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

Ben Amos
fuente
Recibo un error: Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
mLstudent33
pero mis java -versionmiradas bien: 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
¿Cuál es la diferencia entre python3-distutils-extra(en Ubuntu16.04) y python3-distutils(no se puede localizar en python3-distutils-extra)?
Skytree
Por packages.debian.org: "Este paquete (python3-distutils-extra) proporciona funciones adicionales a las herramientas de configuración y distutils de Python". Por lo que parecería que distutils es una dependencia de distutils-extra. Por qué la instalación de distutils-extra tendría éxito donde falla la instalación de distutils, no puedo decirlo.
Ben Amos
15

puede utilizar sudo apt-get install python3-distutilscon permiso de root.

creo que funcionó aquí

Mohammad Heydari
fuente
12

Puede instalar el python-distutilspaquete. sudo apt-get install python-distutilsdebería ser suficiente.

Manoj Govindan
fuente
No puedo hacer eso. Es un servidor VPS, no tengo privilegios de sudo. Estoy pensando en instalar una Python local. O eso, o encuentro el archivo distutils para python 2.5.
Neo
3
Si está instalando Python local, cambie a 2.6 o 2.7. Vienen con distutils.
Manoj Govindan
2
Todos los Python han incluido distutils desde 1999. Aquí parece uno de los estúpidos sistemas operativos que dividen la biblioteca estándar en paquetes arbitrarios de python y python-devel.
Éric Araujo
7

Me encontré con este error en un Beaglebone Black usando la distribución estándar de Angstrom. Actualmente ejecuta Python 2.7.3, pero no incluye distutils. La solución para mí fue instalar distutils. (Requería privilegios su).

    su
    opkg install python-distutils

Después de esa instalación, el comando con errores anteriormente funcionó bien.

    python setup.py build
mayordomo
fuente
2

Si se encuentra en un escenario en el que está utilizando una de las últimas versiones de Ubuntu (o variantes como Linux Mint), una que viene con Python 3.8, entonces NO podrá tener Python3.7 distutils, el alias no podrá usar pipo pipenvcon Python 3.7, consulte: Cómo instalar python-distutils para versiones antiguas de Python

Obviamente, usar Python3.8 no es un problema.

Zoltan Fedor
fuente
0

Si el sistema Python está estropeado (es decir, los paquetes del sistema operativo dividen distutils en un paquete python-devel) y no puede pedirle a un administrador de sistemas que instale la pieza que falta, entonces tendrá que instalar su propio Python. Requiere algunos archivos de encabezado y una cadena de herramientas de compilación. Si no puede tenerlos, intente compilar un Python en una computadora idéntica y simplemente cópielo.

Éric Araujo
fuente
-8

Puede intentar instalar Python 2.6,

sudo apt-get install python2.6

Esto debería instalar la última versión de Python y también el paquete distutils.

sheki
fuente
No puedo hacer un sudo. Supongo que tendré que obtener una instalación local de Python.
Neo