Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.5K
Vistas
Cómo instalar python-distutils para versiones antiguas de python

Estoy ejecutando Ubuntu 20.04 con Python 3.6, 3.7 y 3.8 instalado.

Estoy tratando de instalar algunos paquetes usando pip en las versiones 3.6 y 3.7 usando 'python3.7 -m pip install package' pero recibo este error:

 ModuleNotFoundError: No module named 'distutils.util

Ya tengo python3-distutils y python3-distutils-extra pero pip solo funciona para python 3.8 .

¿Cómo puedo hacer que pip funcione para instalar paquetes en python 3.6 y 3.7?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

¿Qué pasa con cosas como deadsnakes o pyenv , ayudarían? De lo contrario, es posible que deba agregar los repositorios apt para versiones anteriores de Ubuntu (por ejemplo, 18.04), pero no estoy seguro de cuáles podrían ser los efectos secundarios. Esta es una pregunta que preferiría hacer en Ask Ubuntu o Super User .

over 4 years ago · Santiago Trujillo Denunciar

0

(de la descripción de la recompensa)

Quiero una solución definitiva que NO implique que alguien me diga que instale:

  • python-distutils
  • python3-distutils
  • python3-distutils-extra

Estaré entregando VOTOS REDUCIDOS GRATIS a cualquiera que mencione instalarlos.

Bueno, tengo malas noticias para ti. No existe una forma "oficial" de obtener distutils en los paquetes python* proporcionados por Debian sin instalar estos paquetes, a menos que salga de los repositorios de paquetes predeterminados de Debian.

Esta es una consecuencia de la decisión de Debian de dividir varias partes de la biblioteca estándar de Python en paquetes separados, sobre la base de su política de dividir las cosas en paquetes de tiempo de ejecución y paquetes de desarrollo. Consideran que las distutils pertenecen a la parte de "desarrollo" y, por lo tanto, no las distribuyen como parte del paquete estándar de python .


Básicamente, sus opciones son:

  • instale un paquete python*-distutils .
    • Esto es lo que los mantenedores de su sistema operativo recomiendan hacer en su situación.
    • No ha explicado por qué "repartirá votos negativos gratuitos" para cualquiera que recomiende esto, pero esta es realmente la solución "más correcta".
  • instale Python, desde algún lugar que no rompa la biblioteca estándar.
    • Esto significaría usar una fuente de paquete distinta a los repositorios oficiales de Debian.
    • La fuente más fácil sería deadsnakes ppa .
  • compila tu propio Python!
    • En realidad, esto no es tan difícil, y herramientas como pyenv facilitan la compilación y la administración de múltiples versiones de python.
  • ¡Hack alrededor del problema!
    • ¿Podría... descargar las fuentes del repositorio de CPython y colocar la carpeta Lib/distutils en algún lugar de la ruta de importación para pythonX.Y ? Sin embargo, este es un truco 100% y recomiendo encarecidamente no hacerlo. Si pasa algo malo, porque hiciste esto, no soy responsable.
over 4 years ago · Santiago Trujillo Denunciar

0

He estado buscando una respuesta a esta pregunta durante casi tanto tiempo como tú, y finalmente encontré una solución.

Tenga cuidado, es posible que haya arruinado mi instalación de python3.8 como efecto secundario, y es posible que el paquete se desinstale nuevamente y rompa las cosas tan pronto como ejecute apt-update.

Además, puede ser posible reducir la cantidad de comandos, pero esto es lo que terminé haciendo:

Ejecute apt list para ver una lista de paquetes disponibles:

 $ apt list -a python3-distutils Listing... Done python3-distutils/focal-updates,focal-updates,focal-security,focal-security,now 3.8.5-1~20.04.1 all [installed] python3-distutils/focal,focal 3.8.2-1ubuntu1 all python3-distutils/bionic-updates,bionic-updates 3.6.9-1~18.04 all python3-distutils/bionic,bionic 3.6.5-3 all

Luego descargue el paquete deb "bionic", porque en realidad contiene varias versiones de distutils , para Pythons 3.6, 3.7 y 3.8:

 $ apt download python3-distutils/bionic Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-distutils all 3.6.9-1~18.04 [144 kB] Fetched 144 kB in 0s (661 kB/s)

Finalmente, instale el paquete deb:

 $ sudo dpkg --install python3-distutils_3.6.9-1~18.04_all.deb dpkg: warning: downgrading python3-distutils from 3.8.5-1~20.04.1 to 3.6.9-1~18.04 (Reading database ... 193375 files and directories currently installed.) Preparing to unpack python3-distutils_3.6.9-1~18.04_all.deb ... Unpacking python3-distutils (3.6.9-1~18.04) over (3.8.5-1~20.04.1) ... Setting up python3-distutils (3.6.9-1~18.04) ...

En este punto, finalmente pude usar pip con python3.6.


Nota-1: Las impresiones de la apt list -a anterior dependen de si ejecuta una distribución Ubuntu o Debian , y qué apt-repos ha activado en /etc/apt/sources.list*.

Nota-2: Como se ve en el caso de python3-distutils/bionic , arriba, el nombre del paquete no siempre coincide con su contenido. Para verlos, debe descargarlo e inspeccionarlo con dpkg -C <pafkage-file> , o de forma remota con apt-file list python3-distutils .

Nota-3: En caso de que no pueda encontrar la versión exacta de distutils para una versión específica de Python, puede instalar una versión anterior y vincularla. Por ejemplo, en Debian-unstable("sid") y "bullseye" a partir de enero de 2020, el paquete python3-distutils contenido en sus apt-repos tiene archivos solo para Python3.9, y los apt-repos anteriores de "buster" contienen archivos solo para Python3.7. Entonces, si desea instalar distutils para Python3.8, debe descargar el paquete "buster" y ejecutar:

 $ sudo dpkg --unpack python3-distutils_3.7.3-1_all.deb $ sudo rm /usr/lib/python3.8/distutils/distutils/ $ sudo ln -w /usr/lib/python3.{7,8}/distutils/distutils/
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda