ImportError: no se puede importar el nombre _remove_dead_weakref

25

He intentado buscar pero no he podido encontrar una buena solución ni a nadie con este error específico.

Sucede después de que intento instalar la pantalla con apt-get install screen.

Error:

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)

Ejecutando Ubuntu 14.04.

La pantalla en sí parece haberse instalado en su última versión, pero el mensaje de error todavía me preocupa.

Realmente perdido aquí, cualquier ayuda es muy apreciada.

antonlab
fuente
¿Cómo se instaló exactamente python3.6en 14.04?
steeldriver
@steeldriver jonathanf repositorio: askubuntu.com/questions/865554/…
antonlab
2
Tal vez es un problema con ese ppa?
steeldriver
@steeldriver Es posible que también haya instalado python3.6 usando otro método (¿creo que se llama desde la fuente?) por lo que puede haber cosas conflictivas. Tratando de encontrar la manera de volver a instalar correctamente en este momento,
antonlab

Respuestas:

16

Recientemente me encontré con este problema cuando estaba usando Pycharm 2017.3.2 en Ubuntu 16.10.

Mi configuración fue:

Instalé Python 3.6 desde el PPA de Python. Tenía Python 3.6.0b4. Sin embargo, acababa de actualizar Ubuntu a 17.04, pero aún tenía que reiniciar. Cuando reinicié mi computadora, todavía estaba arrojando ese error. Por lo tanto, intenté ver cuál era el valor predeterminado python3.6en el 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.

Por lo tanto, me di cuenta de que el Python que tenía en mi virtualenv podría estar desactualizado o apuntar a una versión incorrecta de Python.

Solución :

  • Se aseguró de qué versión de Python 3.6 había instalado (3.6.1).
  • Se eliminó mi entorno virtual.
  • Creó un nuevo entorno virtualen usando virtualenvwrapper: mkvirtualenv --python=python3.6

  • Instalado los requisitos con pip: pip install -r requirements.txt

Hectron
fuente
Me encontré con esto en otra computadora portátil que tenía por ahí. Estos pasos me ayudaron a resolver mis problemas. : D
Hectron
9

Me pasó después de actualizar a Ubuntu 17.10. Arreglé mi python 2.7 virtualenv yendo a su carpeta e ingresando:

virtualenv -p /usr/bin/python2.7 .
Ciske Boekelo
fuente
1
Gracias, esto también funcionó después de una actualización de 16.04 a 18.04.
James Bradbury
6

Esto me sucedió después de actualizar Ubuntu a 17.10.

Traté de ejecutar una aplicación que estaba instalada en un Python virtualenv.

Lo arreglé así:

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

La opción --system-site-packagesera necesaria porque la aplicación usa python-gtk de Ubuntu. Supongo que en la mayoría de los otros casos no es necesario.

Ahora ImportError: cannot import name _remove_dead_weakrefse ha ido :-)

guettli
fuente
1
Me enfrenté a este problema después de actualizar a 18.04, y esta solución también funcionó para mí sin necesidad de reinstalar ninguno de los entornos virtuales; ¡gracias!
aspiring_sarge
4

Recientemente me he encontrado con un problema similar (mi caso específico fue usar un virtualenv después de actualizar la instalación de Python del sistema). Según este informe del informe de errores de Debian , parece que una instalación local de Python puede interferir con la del sistema. Como dijiste que instalaste Python desde la fuente, ese es probablemente el problema. El informe de error vinculado sugiere no instalar Python en /usr/local(puede instalarlo en un prefijo diferente usando la --prefix=/some/other/directorymarca ./configure).

jonathanverner
fuente
Interesante. Todavía soy bastante nuevo en Linux, pero veré qué puedo encontrar al respecto.
antonlab
Instalé miniconda en mi casa y, afortunadamente, pude resolver el problema abriendo un nuevo shell después del que configuré miniconda.
Fred Schoen