在 Debian 系统中切换 Python 版本,常见做法取决于你是系统级切换还是用户/项目级切换。下面按场景说明(以 Debian 10/11/12 为例)。
ls /usr/bin/python*
python3 --version
常见情况:
python3 指向系统默认的 Python 3.xpython 可能不存在,或指向 Python 2(旧系统)update-alternatives 切换(推荐,系统级)假设你有 python3.9 和 python3.11:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
数字表示优先级,越大越优先。
sudo update-alternatives --config python3
输出示例:
1 /usr/bin/python3.9
* 2 /usr/bin/python3.11
输入编号即可切换。
python3 --version
✅ 适用于:
python3#!/usr/bin/python3⚠️ 不建议直接改 /usr/bin/python 指向,可能影响系统工具(如 apt)。
~/.bashrcalias python3=/usr/bin/python3.11
然后:
source ~/.bashrc
✅ 安全、简单
❌ 只对当前用户生效
venv(官方推荐)python3.11 -m venv venv
source venv/bin/activate
当前 shell 中:
python --version
✅ 不影响系统
✅ 最适合开发
sudo apt update
sudo apt install -y \
make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev \
wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev
curl https://pyenv.run | bash
按提示把以下内容加入 ~/.bashrc:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
pyenv install 3.11.6
pyenv global 3.11.6
或仅当前目录:
pyenv local 3.11.6
apt、dpkg、gnome-terminal 等依赖它/usr/bin/python3 一般没问题,但别动 /usr/bin/python| 场景 | 推荐方式 |
|---|---|
| 系统默认 | update-alternatives |
| 当前用户 | alias |
| 项目开发 | venv |
| 多版本管理 | pyenv |
如果你愿意,可以告诉我:
cat /etc/debian_version)python 还是 python3我可以给你最安全的具体命令。