在 Ubuntu 上配置 多个 Python 版本 常见且推荐的做法是:
系统 Python 不动 + 用 pyenv 管理多版本 + 用虚拟环境隔离项目。
下面按 最推荐方案 → 备选方案 给你完整说明。
pyenv 管理多版本(最安全、最常用)sudo apt update
sudo apt install -y \
build-essential \
libssl-dev \
zlib1g-dev \
libncurses5-dev \
libreadline-dev \
libsqlite3-dev \
libgdbm-dev \
libbz2-dev \
libexpat1-dev \
liblzma-dev \
curl \
git
curl https://pyenv.run | bash
然后按提示把以下内容加到 ~/.bashrc 或 ~/.zshrc:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --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
验证:
python --version
pyenv virtualenv 3.10.13 myenv
pyenv activate myenv
pyenv deactivate
deadsnakes PPA(适合系统级)⚠️ 不建议新手,容易破坏系统 Python
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
安装多版本:
sudo apt install python3.8 python3.10 python3.12
使用:
python3.8 --version
python3.10 --version
⚠️ 不要用 update-alternatives 改系统 python3
update-alternatives(不推荐)sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 2
sudo update-alternatives --config python
❌ 风险:可能破坏 apt、gnome、pip
| 场景 | 推荐 |
|---|---|
| 开发 | ✅ pyenv + venv |
| 服务器 | ✅ pyenv 或 Docker |
| 系统脚本 | ❌ 不动系统 Python |
| 单项目 | ✅ pyenv local |
❌ 不能,系统工具依赖它。
python -m pip install xxx
如果你愿意,可以告诉我:
我可以给你一套 最合适的具体配置方案。