Pip: ImportError: não é possível importar o nome 'sysconfig' (Ubuntu 16.04)

Criado em 3 mai. 2018  ·  16Comentários  ·  Fonte: pypa/pip

  • Versão Pip:
  • Versão do Python: 3.6.5
  • Sistema operacional: Ubuntu 16.04.4 LTS

Descrição:

Problema semelhante ao #5356, mas com uma versão diferente do Ubuntu. A solução proposta em #5356 não resolve o problema com esta versão do Ubuntu

Depois de instalar o Python 3.6 do repositório jonathonf em uma versão limpa do Ubuntu, encontrei o seguinte erro ao tentar instalar o Pip

Observe que tentar instalar o Pip com a versão do Python que vem por padrão (3.5.2 ) não causa nenhum problema.

O que eu executei:

python3.6 get-pip.py

A mensagem de erro:

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'

Solução alternativa que encontrei

  • Baixe a fonte do Python em https://www.python.org/
  • Descompacte o código-fonte
  • Instale as seguintes dependências:
    sudo apt-get install zlib1g-dev (necessário para compilar Python)
    sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev (necessário para Pip fazer solicitações SSL)
  • Compile e instale o Python:
./configure
make
make install
  • Python 3.6 com Pip deve ser instalado.
downstream auto-locked support

Comentários muito úteis

Também vi um erro semelhante.

$ 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'

No entanto, instalando python3-distutils foi possível evitar este erro.
sudo apt-get install python3-distutils

Todos 16 comentários

Se você quiser ler a descrição do meu problema, verá que eu já olhei para esse. A solução proposta não se aplica a esta versão do Ubuntu.

Não há necessidade de ser rude. Mas para mim compilar python no seu não é uma solução.

Esse erro de importação é a causa. Vou tentar reproduzir mais tarde.

@jonbesga Obrigado pela solução alternativa, também enfrentando esse problema com as mesmas versões exatas do python 3.6 e do Ubuntu ...

@Tarliton Concordo que não é uma solução. Vou renomeá-lo como uma solução alternativa.

Em relação à grosseria, desculpe por isso, mas me dizer para ver o problema ao qual já mencionei no meu problema denota que você postou o comentário sem ler meu problema em primeiro lugar.

@jonbesga foi mal, mas eu deveria ter dito para tentar executar os comandos que o outro problema mencionado.
Como:

python -c "from distutils import sysconfig"

Acabei de fazer isso em uma VM com o Ubuntu 16.04.2 e não tive nenhum problema. E pip instalado.
Vou tentar mais tarde com 16.04.4.

Posso confirmar que em 16.04.4,

python3.6 -c "from distutils import sysconfig"

Produz o seguinte erro:

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'

Tentei instalar o Python 3.6 de ppa:deadsnakes/ppa em vez de ppa:jonathonf/python-3.6 e está instalando o Pip corretamente. Parece que a versão de jonathonf está quebrada de alguma forma.

Edit: Acabei de notar que alguns comentários na resposta do Stack Overflow abordam esse problema com o repositório jonathonf

Posso confirmar que remover ppa:jonathonf/python-3.6 e adicionar ppa:deadsnakes/ppa e reinstalar python3.6 corrige esse problema no Linux Mint 18.3.

Informações sobre como remover o PPA atual: https://askubuntu.com/a/173209/823909
Adicionando novo PPA Python3.6: https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get

@tomrunia , sugiro que você altere o link para https://askubuntu.com/a/310 , pois seu link atual não está apontando para a melhor resposta.

Também vi um erro semelhante.

$ 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'

No entanto, instalando python3-distutils foi possível evitar este erro.
sudo apt-get install python3-distutils

@wakiyamap Parece uma solução que funciona para # 5356 com o Ubuntu 18.04 LTS. No entanto, no Ubuntu 16.04.4 LTS esse pacote foi renomeado e não resolve o problema.

@jonbesga eu usei essa versão.
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"

CPU é diferente, então pode não estar relacionado a este caso.
Desculpe.

Eu tive um problema semelhante no Ubuntu 16.04 (especificamente "de distutils import dist, sysconfig
ImportError: cannot import name 'dist'") e "sudo apt-get install python3-distutils" resolveu. Obrigado!

@RandyRomero @wakiyamap obrigado, apt install python3-distutils funciona para mim também.

@jonbesga Estou em 16.04.4 LTS e funcionou. EDIT - estou usando vagrant, fiz "vagrant box update" há pouco, estou em 20180504)

Geralmente, não é um problema relacionado ao pip, se você me perguntar, tem mais a ver com o empacotamento do Ubuntu

@wakiyamap Obrigado, sua solução apt install python3-distutils funcionou para mim também.
Acabei de atualizar para o Python 3.6.5 no Ubuntu 16.04.4 e as importações para matplotlib e chamadas para pip falharam com o mesmo erro.

Essa correção precisa ser amplamente divulgada.

Este tópico foi bloqueado automaticamente, pois não houve nenhuma atividade recente depois que ele foi fechado. Por favor, abra um novo problema para bugs relacionados.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

qwcode picture qwcode  ·  89Comentários

shredder12 picture shredder12  ·  86Comentários

dstufft picture dstufft  ·  102Comentários

sbidoul picture sbidoul  ·  68Comentários

dstufft picture dstufft  ·  170Comentários