Ubuntu 18.04下Python2/3环境异常,求助清理与修复方案
清理Ubuntu混乱Python环境 & 解决pyreadline安装报错
一、清理Python环境步骤
1. 排查现有Python链接和版本
- 执行
ls -la /usr/bin/python*,列出所有Python相关文件和符号链接,找出指向不存在文件的无效链接(比如链接箭头后路径为红色或提示不存在)。 - 用
which python、which python3查看当前默认Python的指向,再用python --version、python3 --version验证版本是否正常。
2. 修复系统级Python
- Ubuntu系统依赖Python3,不要删除系统自带的Python3版本。先卸载你手动安装的非系统Python版本:
- 若是源码编译安装的,进入当初的源码目录,执行
sudo make uninstall。 - 若是通过PPA安装的,先移除对应PPA:
sudo add-apt-repository --remove ppa:ppa名称,再执行sudo apt purge pythonX.X(X.X是你要卸载的版本号)。
- 若是源码编译安装的,进入当初的源码目录,执行
- 重建系统默认Python3的符号链接:
执行sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1(把X换成系统自带的版本号,比如3.10),然后运行sudo update-alternatives --config python3,选择系统自带的版本作为默认。 - 删除无效符号链接:找到步骤1里的无效链接,执行
sudo rm /usr/bin/无效链接名(比如sudo rm /usr/bin/python),如果需要默认python指向python3,可执行sudo ln -s /usr/bin/python3 /usr/bin/python。
3. 清理用户级Python包
- 检查用户目录下的
~/.local/lib/pythonX.X/site-packages(X.X是你的Python版本),这里是用pip install --user安装的包,若环境混乱,可先备份再删除:mv ~/.local/lib/pythonX.X/site-packages ~/.local/lib/pythonX.X/site-packages.bak。 - 后续建议用虚拟环境隔离项目:每个项目执行
python3 -m venv 项目环境名,激活环境source 项目环境名/bin/activate后,再安装依赖,避免污染全局环境。
二、关于pyreadline的问题
- 首先,pyreadline是针对Windows平台的包,Ubuntu/Linux完全不需要安装,Linux系统自带标准库的
readline模块,直接使用即可。 - 你遇到的
AttributeError: module 'collections' has no attribute 'MutableMapping'是因为pyreadline未适配Python3.10+版本——Python3.10开始MutableMapping从collections移到了collections.abc,旧版pyreadline还在调用旧路径,导致报错。 - 解决方法:停止安装pyreadline,若脚本里有
import pyreadline,改成import readline即可在Ubuntu上正常使用。
内容的提问来源于stack exchange,提问作者andrep182
相关产品推荐
相关产品推荐

