python2.7 因弱引用导入错误而损坏,请帮忙!

python2.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

另一个用户也遇到了类似的问题,但这会影响我尝试执行的任何 Python 程序。我无法通过 pip 安装任何东西,也无法使用任何 Python 脚本。我真的不知道该怎么办,非常感谢您的帮助。

“python --version”的输出是

Python 2.7.12

然而“更新 python”产生了:

python is already the newest version (2.7.14-2ubuntu1).

答案1

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

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

答案2

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

答案3

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

安装虚拟环境:

pip install virtualenv

创建一个新的虚拟环境:

virtualenv -p {env_name}

激活虚拟环境:

source env_name/bin/activate

停用您的虚拟环境:

deactivate

答案4

假设您需要重新创建virtualenv

cd <virtualenv_folder>
virtualenv .

相关内容