Python在Linux服务器中不仅是一个普通的软件,它还承担着系统内部大量任务的执行。如果需要更换版本,可以安装新版Python作为并行版本,而不是直接卸载旧版本。但如果确实需要把Python卸载,可以按照以下安全步骤操作。
在动手之前,务必确认服务器上有哪些Python版本,以及哪些是系统依赖的,哪些是后来手动安装的。
可以使用如下命令查看:
python --version
python2 --version
python3 --version
which python
which python3
同时列出系统中的Python安装路径:
whereis python
常见的路径示例:
系统Python:/usr/bin/python
手动安装的Python:/usr/local/bin/python3.9
一般来说,安装在/usr/local/下的Python版本,可以放心卸载,而/usr/bin/下的属于系统组件,不要动!
通过源码安装的Python卸载:
如果之前是通过源码编译安装的(比如下载了官网Python源码包、手动make install),那么卸载起来相对简单。
1. 找到安装路径
通常源码安装时的路径会在 /usr/local/ 下,比如:
/usr/local/bin/python3.9
/usr/local/lib/python3.9
/usr/local/include/python3.9
可以通过以下命令确认安装细节:
python3.9 -m site
输出结果中有 site-packages 路径,旁边通常就是安装目录。
2. 手动删除相关文件
根据确认的路径,执行删除命令:
sudo rm -rf /usr/local/bin/python3.9
sudo rm -rf /usr/local/lib/python3.9
sudo rm -rf /usr/local/include/python3.9
sudo rm -rf /usr/local/share/man/man1/python3.9.1
如果你使用过虚拟环境(venv、virtualenv),还需要清理这些目录。
清理pip:
sudo rm -rf /usr/local/bin/pip3.9
小提醒:删除前务必确认路径是否正确,防止误删系统文件。
通过包管理器安装的Python卸载:
如果是通过系统包管理器(如yum、apt)安装的特定Python版本,可以按照下面的方法卸载:
1. 使用yum/dnf卸载(CentOS、Rocky Linux、AlmaLinux等)
首先列出安装的Python版本:
yum list installed | grep python
假设你想卸载 python39:
sudo yum remove python39
注意:
CentOS 7 默认自带Python 2.7,不要卸载 /usr/bin/python;
CentOS 8/9 默认自带Python 3.6+/3.9+,也不能卸载;
只卸载自己通过yum安装的新版本,如python38、python39。
2. 使用apt卸载(Ubuntu、Debian)
列出Python包:
dpkg --list | grep python
卸载特定版本:
sudo apt remove python3.9
sudo apt purge python3.9
之后,可以运行:
sudo apt autoremove
清理掉依赖。
同样要小心,不要卸载python3-minimal、python3.8(Ubuntu 20.04系统默认)这类核心依赖!
验证Python是否成功卸载:
卸载后,可以通过下面命令确认目标版本是否已经清除:
python3.9 --version
如果提示 command not found,说明卸载成功。
另外,检查whereis python确保路径中不再包含被卸载的版本。
卸载Python虚拟环境:
如果你使用了venv或virtualenv创建了多个虚拟环境,它们通常存放在如下位置:
当前项目目录下
手动指定的路径(如~/envs/)
虚拟环境本质是复制了一套Python运行时和库,因此清理时直接删除虚拟环境文件夹即可:
rm -rf myenv/
rm -rf ~/envs/myprojectenv/
无需特别复杂的操作。
常见问题及应对:
1. 不小心卸载了系统Python,怎么办?
如果误操作导致系统核心Python缺失,可以尝试使用rescue模式重新挂载系统,手动恢复;通过chroot进入系统后重新安装python3-minimal(Ubuntu)或python(CentOS);最严重的情况,需要重新安装系统。所以,卸载前一定要备份,尤其是远程服务器。
2. 卸载后系统提示各种模块找不到?
这是因为一些脚本写死了#!/usr/bin/python路径。可以考虑建立软链接指向合适的Python版本,比如:
sudo ln -s /usr/bin/python3.8 /usr/bin/python
让系统依然能找到一个有效的python命令。
在Linux服务器上把Python卸载时一定要分清楚系统自带的和自己安装的版本。卸载后要验证系统服务、包管理器是否正常;最好采用并行安装新版Python的方式,而不是直接删除旧版。
谨慎操作,备份第一!一旦搞坏,轻则修复困难,重则服务器报废。如果你的目标是换新版本,推荐用pyenv、conda等环境管理工具,无需破坏原有系统Python,既方便又安全。