我刚刚从 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 .