温馨提示×

怎么在Debian切换Python版本

小樊
42
2026-07-31 22:24:32
栏目: 编程语言

Debian 上切换 Python 版本,常见做法取决于你是系统级切换还是用户/项目级切换。下面按推荐程度从高到低说明。


✅ 推荐方式一:使用 update-alternatives(系统级切换)

适用于:想改变 python / python3 命令默认指向的版本。

1️⃣ 查看已安装的 Python 版本

ls /usr/bin/python*

常见如:

/usr/bin/python3.11
/usr/bin/python3.12

2️⃣ 将 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.12 2

最后的数字是优先级,越大越优先

3️⃣ 切换默认版本

sudo update-alternatives --config python3

输出示例:

There are 2 choices for the alternative python3.

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

Press <enter> to keep the current choice[*], or type selection number:

4️⃣ 验证

python3 --version

⚠️ 注意

  • 不建议修改 /usr/bin/python(无版本号),可能影响系统工具
  • Debian 12 起已移除 python 命令,只保留 python3

✅ 推荐方式二:使用 pyenv(用户级 / 项目级,最安全)

适用于:开发环境、多项目不同 Python 版本。

1️⃣ 安装依赖

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

2️⃣ 安装 pyenv

curl https://pyenv.run | bash

3️⃣ 配置环境变量

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

(建议写入 ~/.bashrc~/.zshrc

4️⃣ 安装并切换 Python 版本

pyenv install 3.11.6
pyenv install 3.12.1

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

5️⃣ 验证

python --version

优点

  • 不影响系统 Python
  • 非常适合开发

✅ 方式三:虚拟环境(项目隔离)

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

激活后:

python --version

退出:

deactivate

❌ 不推荐方式

sudo ln -sf /usr/bin/python3.12 /usr/bin/python3

⚠️ 可能导致 aptdpkg、系统脚本异常。


✅ 总结建议

场景 推荐方式
系统默认 Python update-alternatives
开发 / 多版本 pyenv
单个项目 venv
生产环境 保持系统 Python 不变

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

  • Debian 版本(11 / 12)
  • 系统用途 还是 开发用途
  • 是否需要 pip / venv / conda

我可以给你一套最合适的具体方案

0