PIP (Python) : ImportError: cannot import name _remove_dead_weakref

PIP (Python) : ImportError: cannot import name _remove_dead_weakref

我遇到以下错误,我搜索了很多但未能找到好的修复方法 - 请遇到此类错误并已解决的任何人。请帮忙。

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

当我从终端 运行 lldb 时,我在我的 macOS X 上遇到了类似的问题。错误消息如下,

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

报错信息和你的很相似。 这是我在我的 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)

我认为问题是安装的系统python,与个人安装的python冲突。在我删除我的 python2.7 之后,lldb 运行良好。我希望它能给你一些想法,尽管我们 运行 正在使用不同的 OS。


为了管理不同版本的 python,我建议您安装 pyenv, 参见 here。它可以轻松切换你的python的不同版本。

我很确定此错误的原因是您安装的方式python并且您很可能从其他地方复制了安装。 . 或者您正在重命名文件夹 .. 或者您在环境路径中安装了无效的 python。

如果您要复制 python 文件夹,请不要安装它 'for all users' .. 只需将它安装到您的 'logged in user only' 文件夹即可。

所以你的解决方案应该是

  1. 安装 python 再次指向您的位置 c:\python27 或
  2. 使用 'install just for this user' 安装 python .. 然后将其复制到您的 c:\python27 .. 您可能对 pipenv 和 virtualenv 感兴趣(google 搜索它们)

此外,您可以使用

运行 点子
python -m pip install <module_to_install>

这与运行宁

相同
pip.exe install <module_to_install>

您可以尝试使用 python 的完整路径,看看 运行 是否可以正常运行。 例如。 c:\python27\python.exe -m pip install <module_to_install>