Pip: ImportError: no se puede importar el nombre 'sysconfig' (Ubuntu 16.04)

Creado en 3 may. 2018  ·  16Comentarios  ·  Fuente: pypa/pip

  • Versión pipa:
  • Versión de Python: 3.6.5
  • Sistema operativo: Ubuntu 16.04.4 LTS

Descripción:

Problema similar al #5356 pero con una versión diferente de Ubuntu. La solución propuesta en #5356 no soluciona el problema con esta versión de Ubuntu

Después de instalar Python 3.6 desde el repositorio jonathonf en una versión limpia de Ubuntu, encontré el siguiente error al intentar instalar Pip

Ten en cuenta que intentar instalar Pip con la versión de Python que viene por defecto (3.5.2) no da ningún problema.

Lo que he ejecutado:

python3.6 get-pip.py

El mensaje de error:

Traceback (most recent call last):
  File "get-pip.py", line 20649, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "get-pip.py", line 20649, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'

Solución que he encontrado

  • Descargue la fuente de Python desde https://www.python.org/
  • Descomprimir el código fuente
  • Instala las siguientes dependencias:
    sudo apt-get install zlib1g-dev (necesario para compilar Python)
    sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev (necesitado por Pip para realizar solicitudes SSL)
  • Compila e instala Python:
./configure
make
make install
  • Se debe instalar Python 3.6 con Pip.
downstream auto-locked support

Comentario más útil

También vi un error similar.

$ sudo python3.6 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'

Sin embargo, al instalar python3-distutils fue posible evitar este error.
sudo apt-get install python3-distutils

Todos 16 comentarios

Si le interesa leer la descripción de mi problema, encontrará que ya lo miré. La solución propuesta allí no es aplicable con esta versión de Ubuntu.

No hay necesidad de ser grosero. Pero para mí, compilar python en tu servidor no es una solución.

Ese error de importación es la causa. Intentaré reproducirlo más tarde.

@jonbesga Gracias por la solución, también experimenté este problema con las mismas versiones exactas de python 3.6 y ubuntu...

@Tarliton Estoy de acuerdo en que no es una solución. Lo renombraré como una solución.

Con respecto a la mala educación, lo siento, pero decirme que vea el problema al que ya me he referido en mi problema denota que publicaste el comentario sin leer mi problema en primer lugar.

@jonbesga mi error, pero debería haber dicho que intentara ejecutar los comandos que mencionó el otro problema.
Me gusta:

python -c "from distutils import sysconfig"

Acabo de hacer eso en una máquina virtual con Ubuntu 16.04.2 y no tuve ningún problema. Y pip instalado.
Lo intentaré más tarde con 16.04.4.

Puedo confirmar que en 16.04.4,

python3.6 -c "from distutils import sysconfig"

Produce el siguiente error:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'

Intenté instalar Python 3.6 desde ppa:deadsnakes/ppa en lugar de ppa:jonathonf/python-3.6 y está instalando Pip correctamente. Parece que la versión de jonathonf está rota de alguna manera.

Editar: Acabo de notar que algunos comentarios en la respuesta de Stack Overflow abordan este problema con el repositorio jonathonf

Puedo confirmar que eliminar ppa:jonathonf/python-3.6 y luego agregar ppa:deadsnakes/ppa y reinstalar python3.6 soluciona este problema en Linux Mint 18.3.

Información sobre cómo eliminar el PPA actual: https://askubuntu.com/a/173209/823909
Agregar nuevo PPA de Python3.6: https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get

@tomrunia Le sugiero que cambie el enlace a https://askubuntu.com/a/310 ya que su enlace actual no apunta a la mejor respuesta.

También vi un error similar.

$ sudo python3.6 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'

Sin embargo, al instalar python3-distutils fue posible evitar este error.
sudo apt-get install python3-distutils

@wakiyamap Esa parece una solución que funciona para #5356 con Ubuntu 18.04 LTS. Sin embargo, en Ubuntu 16.04.4 LTS ese paquete ha cambiado de nombre y no resuelve el problema.

@jonbesga Usé esta versión.
Ubuntu Xenial (16.04 LTS) (GNU/Linux 4.4.94-mainline-rev1 aarch64)
ppa:jonathonf/python-3.6

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

La CPU es diferente, por lo que puede no estar relacionada con este caso.
lo siento.

Tuve un problema similar en Ubuntu 16.04 (específicamente "desde distutils import dist, sysconfig
ImportError: no se puede importar el nombre 'dist'") y "sudo apt-get install python3-distutils" lo resolvió. ¡Gracias!

@RandyRomero @wakiyamap gracias, apt install python3-distutils también me funciona.

@jonbesga Estoy en 16.04.4 LTS y funcionó. EDITAR: estoy usando vagabundo, hice una "actualización de caja vagabunda" hace un momento, estoy en 20180504)

En general, no es un problema relacionado con pip si me preguntas, tiene más que ver con el paquete de Ubuntu

@wakiyamap Gracias, su solución apt install python3-distutils también funcionó para mí.
Acabo de actualizar a Python 3.6.5 en Ubuntu 16.04.4 y las importaciones para matplotlib y las llamadas a pip fallaron con el mismo error.

Esta solución debe ser ampliamente difundida.

Este hilo se ha bloqueado automáticamente ya que no ha habido ninguna actividad reciente después de que se cerró. Abra un nuevo problema para los errores relacionados.

¿Fue útil esta página
0 / 5 - 0 calificaciones