在 CentOS 上切换 Python 版本,常见有几种方式,下面按推荐程度给你说明。
alternatives(系统级,推荐)适合在 系统命令 python / python3 层面切换。
ls /usr/bin/python*
which python python3
假设有 python3.6 和 python3.9:
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
sudo alternatives --config python3
按提示选择编号即可。
⚠️ 注意:
CentOS 7 的yum依赖python2,不要改/usr/bin/python指向 python3,否则 yum 会坏。
pyenv(用户级,最灵活,推荐开发用)适合多版本共存、不影响系统。
sudo yum install -y gcc make patch zlib-devel bzip2 bzip2-devel \
readline-devel sqlite sqlite-devel openssl-devel tk-devel git
curl https://pyenv.run | bash
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
pyenv install 3.9.18
pyenv global 3.9.18
python -V
✅ 不影响系统 Python,安全。
不“切换系统 Python”,而是隔离使用。
python3.9 -m venv venv
source venv/bin/activate
ln -sf /usr/bin/python3.9 /usr/local/bin/python3
⚠️ 容易搞坏系统工具,不建议。
| 场景 | 推荐方式 |
|---|---|
| 系统命令切换 | alternatives |
| 开发 / 多版本 | pyenv |
| 项目隔离 | venv |
如果你告诉我:
我可以给你精确命令。