PIP(Python):导入错误:无法导入名称_remove_dead_weakref

8

我遇到了以下错误,我已经搜索了很多内容,但是还没有找到好的解决方法 - 请任何遇到这种错误并解决的人帮助。

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

你正在导入什么?哪个模块? - Abdullah Ahmed Ghaznavi
2
不接受那些并没有回答你问题的答案,会让那些能够帮助你的用户不太愿意真正地帮助你。这是一个典型的例子。 - CristiFati
请问您能具体说明一下您正在导入哪个模块吗? - shankarj67
我有同样的问题,导入requests - mtefi
实际上,我从我们的IT团队那里得知,他们只是将Python从一个用户配置文件复制并粘贴到我的配置文件中。现在我要求他们不要再这样做了,并要求他们单独安装Python和所有支持模块。 - Ravi K
2个回答

9
我在终端中运行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运行良好。希望这能给你一些想法,尽管我们在不同的操作系统上运行。
为了管理不同版本的Python,我建议您安装pyenv,请参见这里。它可以轻松切换不同版本的Python。

5
我遇到了同样的问题,但是我没有卸载Python,而是将它与Homebrew解除关联:brew unlink python@2 - mnme

1
我非常确定这个错误的原因是你安装Python的方式,很可能是从其他地方复制了你的安装文件夹,或者重命名了文件夹,或者在环境路径中安装了无效的Python。
如果你想要复制Python文件夹,请不要选择“为所有用户安装”,而是只安装到你自己的“仅限当前用户”文件夹中。
所以你的解决方案应该是:
  1. 重新安装Python,将其指向你的位置c:\python27
  2. 或者
  3. 使用“仅为此用户安装”的方式安装Python,然后将它复制到你的c:\python27中。你可能会对pipenv和virtualenv感兴趣(在Google上搜索它们)
此外,你可以使用以下命令来运行pip:
python -m pip install <module_to_install>

这与运行相同。
pip.exe install <module_to_install>

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

1
是的,实际上我了解到我们的IT团队只是将Python从一个用户配置文件复制并粘贴到另一个配置文件中。现在我要求他们不要再进行复制粘贴,而是进行安装。 - Ravi K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接