ImportError: não é possível importar o nome _remove_dead_weakref

25

Tentei pesquisar ao redor, mas não consegui encontrar uma boa solução ou qualquer outra pessoa com esse erro específico.

Isso acontece depois que eu tento instalar a tela com apt-get install screen.

Erro:

Setting up python3.6-minimal (3.6.1-1~14.04.york0) ...
Traceback (most recent call last):
  File "/usr/lib/python3.6/py_compile.py", line 6, in <module>
    import importlib._bootstrap_external
  File "/usr/lib/python3.6/importlib/__init__.py", line 57, in <module>
    import types
  File "/usr/lib/python3.6/types.py", line 171, in <module>
    import functools as _functools
  File "/usr/lib/python3.6/functools.py", line 23, in <module>
    from weakref import WeakKeyDictionary
  File "/usr/lib/python3.6/weakref.py", line 12, in <module>
    from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'
dpkg: error processing package python3.6-minimal (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of python3.6:
 python3.6 depends on python3.6-minimal (= 3.6.1-1~14.04.york0); however:
  Package python3.6-minimal is not configured yet.

dpkg: error processing package python3.6 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 python3.6-minimal
 python3.6
E: Sub-process /usr/bin/dpkg returned an error code (1)

Executando o Ubuntu 14.04.

A tela em si parece ter sido instalada na versão mais recente, mas a mensagem de erro ainda me preocupa.

Realmente perdida aqui, qualquer ajuda é muito apreciada.

antonlab
fonte
Como exatamente você instalou python3.6no 14.04?
steeldriver
@steeldriver repositório jonathanf: askubuntu.com/questions/865554/…
antonlab
2
Talvez seja um problema com esse ppa?
steeldriver
@steeldriver Também posso ter instalado o python3.6 usando outro método (acho que é chamado de origem?), portanto pode haver coisas conflitantes. Tentando descobrir como reinstalar corretamente agora,
antonlab 20/04

Respostas:

16

Recentemente, tive esse problema quando estava usando o Pycharm 2017.3.2 no Ubuntu 16.10.

Minha configuração foi:

Eu instalei o Python 3.6 a partir do PPA python. Eu tinha o Python 3.6.0b4. No entanto, eu havia acabado de atualizar o Ubuntu para 17.04, mas ainda precisava reiniciar. Quando reiniciei meu computador, ele ainda estava causando esse erro. Portanto, tentei ver qual python3.6era o padrão no terminal.

  ~ python3.6
Python 3.6.1 (default, Mar 22 2017, 06:17:05) 
[GCC 6.3.0 20170321] on linux
Type "help", "copyright", "credits" or "license" for more information.

Portanto, percebi que o Python que eu tinha no meu virtualenv pode estar desatualizado ou apontando para uma versão incorreta do Python.

Solução :

  • Verifiquei qual versão do Python 3.6 eu tinha instalado (3.6.1).
  • Removido meu ambiente virtual.
  • Criou um novo ambiente virtual usando o virtualenvwrapper: mkvirtualenv --python=python3.6

  • Instalou os requisitos com o pip: pip install -r requirements.txt

Hectron
fonte
Acabei de encontrar isso em outro laptop que eu tinha por perto. Essas etapas ajudaram a resolver meus problemas. : D
Hectron
9

Aconteceu comigo depois de atualizar para o Ubuntu 17.10. Corrigi o meu python 2.7 virtualenv indo para sua pasta e digitando:

virtualenv -p /usr/bin/python2.7 .
Ciske Boekelo
fonte
1
Obrigado, isso também funcionou após uma atualização do 16.04 para o 18.04.
9788 James
6

Isso aconteceu comigo depois de atualizar o Ubuntu para 17.10.

Tentei executar um aplicativo que foi instalado em um virtualenv do Python.

Corrigi assim:

cd my-virtualenv-directory
virtualenv . --system-site-packages

A opção --system-site-packagesfoi necessária porque o aplicativo usa python-gtk do Ubuntu. Na maioria dos outros casos, não é necessário.

Agora ImportError: cannot import name _remove_dead_weakrefse foi :-)

guettli
fonte
1
Eu enfrentei esse problema após atualizar para o 18.04, e essa correção também funcionou para mim sem a necessidade de reinstalar nenhum dos ambientes virtuais; obrigado!
que você
4

Recentemente, deparei com um problema semelhante (meu caso específico foi usar um virtualenv após atualizar a instalação do sistema python). De acordo com este relatório de bug da debian , parece que uma instalação local do python pode interferir com a instalação do sistema. Desde que você disse que instalou o python da fonte, esse provavelmente é o problema. O relatório de bug vinculado sugere não instalar o python no /usr/local(você pode instalar em um prefixo diferente usando o --prefix=/some/other/directorysinalizador para ./configure).

jonathanverner
fonte
Interessante. Ainda sou novo no linux, mas verei o que posso encontrar sobre isso.
antonlab
Instalei o miniconda em minha casa e, felizmente, poderia resolver o problema abrindo um novo shell depois daquele em que configurei o miniconda.
Fred Schoen