python2.7被weakref导入错误破解,请帮忙!

Ala*_*ves 30 python-2.7

我刚刚从 16.04 更新到 17.10,每次尝试运行任何 python2.7 命令时,都会收到此错误:

pip install --upgrade pip
Traceback (most recent call last):
File "/home/XXXX/bin/pip", line 7, in <module>
    from pip import main
  File "/home/XXXX/local/lib/python2.7/site-packages/pip/__init__.py", 
line 5, in <module>
    import logging
  File "/usr/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, 
collections
  File "/home/XXXX/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref
Run Code Online (Sandbox Code Playgroud)

另一个用户有类似的问题,但这会影响我尝试执行的任何 python 程序。我无法通过 pip 安装任何东西,也无法使用任何 python 脚本。我真的不知道该怎么做,将不胜感激。

“python --version”的输出是

Python 2.7.12
Run Code Online (Sandbox Code Playgroud)

但是“更新python”会产生:

python is already the newest version (2.7.14-2ubuntu1).
Run Code Online (Sandbox Code Playgroud)

duh*_*ime 26

这不是 Ubuntu 解决方案,但是因为这个问题在该错误的搜索结果中出现很高,我想说我在 OSX 上有这个错误,因为我的默认系统 Python 是 2.7,我 brew 安装了“python@2”而安装另一个包。

如果您使用的是 OSX 并且正在使用自制软件,请通过运行来检查使用 brew 安装的软件包brew list,如果“python@2”出现在该列表中,并且 Python 2.7 是您的系统 Python,您可以删除 brew 安装的软件包brew remove python@2 --ignore-dependencies

  • 这是在 brew upgrade 用他们的 package@version 新包替换许多包之后发生的......谢谢! (2认同)
  • 这对我有帮助。在 Mac 上运行 `swift` 时出现上述错误。原来是因为它使用了 brew 中的 python2。删除它解决了我的问题。 (2认同)
  • 谢谢你。它帮助解决了我的 `lldb` 警告。 (2认同)

Csa*_*oth 13

如果您使用的是虚拟环境,则需要重新创建它。另一种可能性是您使用了一些与系统版本冲突的基于源代码或侧面安装的 python 版本。在这种情况下,您必须从各种环境中找出配置正确的文件夹和路径。


小智 5

就我而言,这是与虚拟环境相关的错误。因此,创建一个新的虚拟环境对我有用。以下是可能对您有所帮助的命令列表。

安装虚拟环境:

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

创建一个新的虚拟环境:

virtualenv -p {env_name}
Run Code Online (Sandbox Code Playgroud)

激活虚拟环境:

source env_name/bin/activate
Run Code Online (Sandbox Code Playgroud)

停用您的虚拟环境:

deactivate
Run Code Online (Sandbox Code Playgroud)