温馨提示×

Debian下如何切换Python版本

小樊
39
2026-07-17 10:35:03
栏目: 编程语言

在 Debian 系统中切换 Python 版本,常见做法取决于你是系统级切换用户级切换,还是项目级切换。下面按场景详细说明。


一、查看已安装的 Python 版本

ls /usr/bin/python*
python3 --version

常见路径:

  • python2/usr/bin/python2
  • python3/usr/bin/python3
  • python3.11/usr/bin/python3.11

二、使用 update-alternatives(推荐,系统级)

Debian 官方推荐方式,适合切换 python / python3 的默认版本。

1️⃣ 注册 Python 版本到 alternatives

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2

数字越大,优先级越高

2️⃣ 切换默认 Python3 版本

sudo update-alternatives --config python3

示例输出:

There are 2 choices for the alternative python3.

  Selection    Path                 Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.11   2         auto mode
  1            /usr/bin/python3.9    1         manual mode

输入编号即可切换。

3️⃣ 验证

python3 --version

三、设置 python 命令(不推荐直接改系统)

⚠️ 不建议直接改 /usr/bin/python,因为 Debian 系统工具依赖它。

如果你确实需要:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
sudo update-alternatives --config python

四、用户级切换(不影响系统)

方法 1:修改 .bashrc

alias python=/usr/bin/python3.11
source ~/.bashrc

✅ 仅对当前用户生效


方法 2:使用 update-alternatives --user(较少用)

update-alternatives --user local python /usr/bin/python3.11

五、项目级切换(最推荐方式 ✅)

✅ 使用 venv(官方推荐)

python3.11 -m venv venv
source venv/bin/activate

验证:

python --version

退出:

deactivate

✅ 使用 pyenv(多版本管理神器)

安装 pyenv

curl https://pyenv.run | bash

配置 .bashrc

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

安装 Python

pyenv install 3.11.6

设置版本

pyenv global 3.11.6      # 全局
pyenv local 3.11.6       # 当前目录
pyenv shell 3.11.6       # 当前 shell

六、Debian 特别注意事项 ⚠️

  • 不要卸载系统 python3
  • ❌ 不要直接改 /usr/bin/python
  • ✅ 使用 python3 而不是 python
  • ✅ 虚拟环境优于全局修改

七、推荐方案总结

场景 推荐方式
系统默认 update-alternatives
个人开发 venv
多版本管理 pyenv
临时使用 alias

如果你愿意,可以告诉我:

  • Debian 版本(如 11 / 12)
  • 是想切换 python3 还是 python
  • 是否用于开发 / 服务器 / Docker

我可以给你精确到命令级别的方案。

0