在 Ubuntu 上选择或切换 Python 版本,常见有几种方式,取决于你是系统级切换、用户级切换,还是项目级隔离。下面按使用场景给你一个清晰、实用的说明。
ls /usr/bin/python*
或:
python3 --version
python --version
Ubuntu 通常自带:
python3(系统 Python,不建议删除)python(可能不存在,或指向 python3)sudo apt update
sudo apt install python3.10 python3.11
查看是否安装成功:
python3.10 --version
python3.11 --version
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12
⚠️ 不建议直接改
python或python3指向系统 Python,可能导致系统工具(apt、gnome 等)出错。
update-alternatives(相对安全)sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
切换版本:
sudo update-alternatives --config python3
选择对应编号即可。
pyenv(最推荐)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 3.11.6
pyenv global 3.11.6 # 全局
pyenv local 3.11.6 # 当前目录
pyenv shell 3.11.6 # 当前 shell
查看当前版本:
python --version
✅ 优点
python3.11 -m venv venv
source venv/bin/activate
退出:
deactivate
✅ 适合单个项目使用
❌ 直接删除 /usr/bin/python3
❌ 用 ln -sf 强制改系统 python
❌ 在 Docker / apt 环境中随意切换系统 Python
✅ 正确做法:用 pyenv 或虚拟环境
| 场景 | 推荐方式 |
|---|---|
| 系统 Python | 不改 |
| 多版本共存 | pyenv |
| 单个项目 | venv |
| 临时测试 | pyenv shell |
如果你愿意,可以告诉我:
我可以给你最合适的一套命令。