在 CentOS(7/8/Stream) 上配置 多版本 Python,常见且推荐的做法有 3 种。下面从 最推荐 → 最灵活 给你讲清楚,并附带实用示例。
pyenv(多版本共存、切换方便)sudo yum groupinstall -y "Development Tools"
sudo yum install -y gcc zlib-devel bzip2 bzip2-devel readline-devel \
sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
curl https://pyenv.run | bash
或者手动安装:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
编辑 ~/.bashrc 或 ~/.bash_profile:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
生效:
source ~/.bashrc
pyenv install --list
pyenv install 3.8.18
pyenv install 3.10.13
pyenv install 3.12.1
pyenv global 3.10.13 # 全局
pyenv local 3.8.18 # 当前目录
pyenv shell 3.12.1 # 当前 shell
查看当前版本:
python --version
✅ 优点
alternatives(系统级)wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz
tar -xzf Python-3.10.13.tgz
cd Python-3.10.13
./configure --enable-optimizations
make -j$(nproc)
sudo make altinstall
⚠️ 一定要用
altinstall,否则会覆盖系统 python
sudo alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.10 1
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
sudo alternatives --config python3
✅ 优点
❌ 缺点
✅ 多版本 + 多项目 的最佳实践
python3.8 -m venv venv38
python3.10 -m venv venv310
source venv38/bin/activate
python --version
✅ 优点
| 做法 | 原因 |
|---|---|
| 直接替换 /usr/bin/python | 破坏 yum、dnf |
| yum install python3X | CentOS 官方源版本少 |
| 用 root 跑 pyenv | 权限风险 |
| 场景 | 推荐 |
|---|---|
| 服务器 | Python 3.9 + venv |
| 开发机 | pyenv + venv |
| CI/CD | 固定 Python + venv |
alternativespyenv + venvvenv如果你愿意,可以告诉我:
我可以直接给你一整套 复制即用的配置方案。