在 CentOS 上“升级 Python”要特别注意:不要直接覆盖系统自带的 Python(尤其是 CentOS 7 的 Python 2.7),否则会导致 yum、systemctl 等命令失效。
下面按推荐方式给你讲几种常见做法。
# 1. 安装 SCL 源
sudo yum install -y centos-release-scl
# 2. 安装 Python 3.8
sudo yum install -y rh-python38
# 3. 使用新版本 Python
scl enable rh-python38 bash
# 验证
python --version
退出 SCL 环境后,系统 Python 不变。
✅ 安全、不影响系统
# 安装依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget
# 下载源码
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
sudo tar xzf Python-3.10.12.tgz
cd Python-3.10.12
# 编译安装
sudo ./configure --enable-optimizations
sudo make altinstall
⚠️ 一定要用 make altinstall,不要用 make install
python3.10 --version
系统 Python 仍然是:
/usr/bin/python
如果你想让 python3 指向新版本:
sudo alternatives --set python3 /usr/local/bin/python3.10
❌ 不要对 python(Python 2)做这个操作
CentOS 8 默认就有 Python 3:
sudo dnf install python3
python3 --version
如需新版本:
sudo dnf install python39
❌ 不要做这些:
/usr/bin/pythonpython 软链接到 python3✅ 正确做法:
python3.x 命令python3.10 -m venv venv
source venv/bin/activate
| 场景 | 推荐方式 |
|---|---|
| 服务器生产环境 | SCL |
| 需要指定版本 | 编译安装 |
| 本地开发 | venv |
| CentOS 8 | dnf |
如果你告诉我:
我可以给你精确命令。