ImportError: impossible d'importer le nom _remove_dead_weakref


25

J'ai essayé de chercher mais je n'ai pas pu trouver de bonne solution ou quelqu'un d'autre avec cette erreur spécifique.

Cela se produit après avoir essayé d'installer l'écran avec apt-get install screen.

Erreur:

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)

Exécution d'Ubuntu 14.04.

L'écran lui-même semble s'être installé sur sa dernière version mais le message d'erreur m'inquiète toujours.

Vraiment à perte ici, toute aide est grandement appréciée.


Comment avez-vous installé exactement python3.6le 14.04?
steeldriver

@steeldriver jonathanf repository: askubuntu.com/questions/865554/…
antonlab

2
C'est peut-être un problème avec ce ppa?
steeldriver

@steeldriver J'ai peut-être également installé python3.6 en utilisant une autre méthode (je pense qu'il est appelé depuis la source?) donc il peut y avoir des choses conflictuelles. Essayer de comprendre comment réinstaller correctement en ce moment,
antonlab

Réponses:


16

J'ai récemment rencontré ce problème lorsque j'utilisais Pycharm 2017.3.2 sur Ubuntu 16.10.

Ma configuration était:

J'ai installé Python 3.6 à partir du Python PPA. J'avais Python 3.6.0b4. Cependant, je venais de mettre à jour Ubuntu vers 17.04, mais je n'avais pas encore redémarré. Lorsque j'ai redémarré mon ordinateur, il renvoyait toujours cette erreur. Par conséquent, j'ai essayé de voir quelle était la valeur par défaut python3.6dans le 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.

Par conséquent, j'ai réalisé que le Python que j'avais dans mon virtualenv pouvait être obsolète ou pointer vers une version Python incorrecte.

Solution :

  • Assurez-vous quelle version de Python 3.6 j'avais installée (3.6.1).
  • Suppression de mon environnement virtuel.
  • Création d'un nouvel environnement virtuel à l'aide de virtualenvwrapper: mkvirtualenv --python=python3.6

  • Installé les exigences avec pip: pip install -r requirements.txt


Je suis juste tombé sur cela sur un autre ordinateur portable que j'avais allongé. Ces étapes ont aidé à résoudre mes problèmes. : D
Hectron

9

Cela m'est arrivé après la mise à niveau vers Ubuntu 17.10. J'ai corrigé mon python 2.7 virtualenv en allant dans son dossier et en entrant:

virtualenv -p /usr/bin/python2.7 .

1
Merci, cela a également fonctionné après une mise à niveau du 16.04 au 18.04.
James Bradbury

6

Cela m'est arrivé après la mise à niveau d'Ubuntu vers 17.10.

J'ai essayé d'exécuter une application installée dans un virtualenv Python.

Je l'ai corrigé comme ceci:

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

L'option --system-site-packagesétait nécessaire car l'application utilise python-gtk d'Ubuntu. Je gues dans la plupart des autres cas ce n'est pas nécessaire.

Maintenant , ImportError: cannot import name _remove_dead_weakrefest parti :-)


1
J'ai rencontré ce problème après la mise à niveau vers la version 18.04, et ce correctif a également fonctionné pour moi sans avoir à réinstaller aucun des environnements virtuels; Je vous remercie!
aspiring_sarge

4

J'ai récemment rencontré un problème similaire (mon cas spécifique utilisait un virtualenv après la mise à jour de l'installation du système python). D'après ce rapport de rapport de bogue Debian , il semble qu'une installation locale de python puisse interférer avec celle du système. Puisque vous avez dit que vous avez installé python à partir des sources, c'est probablement le problème. Le rapport de bogue lié suggère de ne pas installer python dans /usr/local(vous pouvez installer un préfixe différent en utilisant l' --prefix=/some/other/directoryindicateur to ./configure).


Intéressant. Je suis encore assez nouveau sur Linux, mais je vais voir ce que je peux trouver à ce sujet.
antonlab

J'ai installé miniconda chez moi et, heureusement, j'ai pu résoudre le problème en ouvrant un nouveau shell après celui dans lequel j'ai installé miniconda.
Fred Schoen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.