在 Ubuntu 上切换 Python 版本,常见有 系统级切换 和 用户级/项目级切换 两种方式。下面按使用场景给你一个清晰、安全的说明。
python --version
python3 --version
Ubuntu 20.04+ 默认:
python 通常不存在或指向 python3python3 通常是系统关键组件(不要随便卸载)例如安装 Python 3.8 和 3.10:
sudo apt update
sudo apt install python3.8 python3.10
查看已安装版本:
ls /usr/bin/python*
update-alternatives(系统级切换,推荐)sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
数字表示优先级,越大越优先。
sudo update-alternatives --config python3
输出示例:
1 /usr/bin/python3.8
* 2 /usr/bin/python3.10
输入编号即可。
python3 --version
✅ 优点:系统级、干净、官方推荐方式
⚠️ 注意:不要修改 /usr/bin/python 指向,避免破坏系统工具
~/.bashrcalias python3=/usr/bin/python3.10
然后:
source ~/.bashrc
✅ 适合个人开发
❌ 只对当前 shell 有效
pyenv(最安全、最灵活)sudo apt install curl git build-essential \
libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget \
libffi-dev liblzma-dev
curl https://pyenv.run | bash
按提示把以下内容加入 ~/.bashrc:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
然后:
source ~/.bashrc
pyenv install 3.10.12
pyenv local 3.10.12 # 当前目录生效
pyenv global 3.10.12 # 全局生效
验证:
python --version
✅ 不影响系统 Python
✅ 每个项目可不同版本
✅ 生产环境也很常用
python3.10 -m venv venv
source venv/bin/activate
虚拟环境激活后:
python --version
✅ 项目隔离
✅ 不影响系统
✅ 强烈推荐
❌ 不要删除系统 Python
sudo apt remove python3
可能导致系统崩溃(apt、gnome 等依赖它)
❌ 不要直接改 /usr/bin/python 软链接
| 场景 | 推荐方式 |
|---|---|
| 系统默认版本 | update-alternatives |
| 多版本共存 | pyenv |
| 项目开发 | venv + 指定 Python |
| 临时使用 | alias |
如果你愿意,可以告诉我:
我可以给你一个最稳妥的具体方案。