web-dev-qa-db-fra.com

PIP (Python): ImportError: impossible d'importer le nom _remove_dead_weakref

Je reçois une erreur ci-dessous, j'ai beaucoup recherché, mais je n'ai pas pu trouver de bonne solution. veuillez aider.

File "c:\python27\lib\runpy.py", line 174, in _run_module_as_main
   "__main__", fname, loader, pkg_name)
 File "c:\python27\lib\runpy.py", line 72, in _run_code
   exec code in run_globals
 File "C:\python27\Tools\Scripts\pip.exe\__main__.py", line 5, in <module>
 File "c:\python27\lib\site-packages\pip\__init__.py", line 5, in <module>
   import logging
 File "c:\python27\lib\logging\__init__.py", line 26, in <module>
   import sys, os, time, cStringIO, traceback, warnings, weakref, collections
 File "c:\python27\lib\weakref.py", line 14, in <module>
   from _weakref import (
ImportError: cannot import name _remove_dead_weakref
7
Ravi K

J'ai rencontré le même problème sur mon macOS X lorsque j'exécute lldb à partir du terminal. Le message d'erreur est le suivant,

16:55 $ lldb
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 52, in <module>
    import weakref
File "/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/weakref.py", line 14, in <module>
from _weakref import (
ImportError: cannot import name _remove_dead_weakref

Le message d'erreur est assez similaire au vôtre. C'est ce que j'ai résolu sur mon macOS X.

$ brew list
...<many libraries>
python@  <The one has conflicted with my python3.6>

$ brew remove python@2 --ignore-dependencies
Uninstalling /usr/local/Cellar/python@2/2.7.14_3... (4,662 files, 82.8MB)

Je pense que le problème est causé par le système installé python, qui entre en conflit avec python personnellement installé. Après avoir supprimé mon python2.7 et lldb fonctionne bien. J'espère que cela vous donnera une idée, bien que nous fonctionnions sur un système d'exploitation différent.


Pour gérer différentes versions de python, je vous recommande d'installer pyenv, voir ici . Il peut facilement changer les différentes versions de votre python.

9
Heefan

Je suis sûr que la raison de cette erreur est la façon dont vous installez python et que vous avez probablement copié votre installation depuis un autre endroit .. ou vous renommez les dossiers .. ou vous avez une installation python non valide dans votre chemin d'accès à l'environnement).

Si vous cherchez à copier le dossier python about, ne l'installez pas 'pour tous les utilisateurs' .. installez-le simplement dans votre dossier pour votre 'utilisateur connecté uniquement'.

Votre solution doit donc être soit

  1. installez python pointant à nouveau vers votre emplacement c:\python27 ou
  2. install python en utilisant 'installer uniquement pour cet utilisateur' .. puis copiez-le sur votre c:\python27 .. vous pourriez être intéressé par pipenv et virtualenv (recherche google pour eux)

Vous pouvez également exécuter pip en utilisant

python -m pip install <module_to_install>

C'est la même chose que courir

pip.exe install <module_to_install>

Vous pouvez essayer d'utiliser le chemin complet pour python pour voir s'il fonctionne correctement). Par exemple. c:\python27\python.exe -m pip install <module_to_install>

1
Brian