Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记

Ubuntu 系统默认使用的是 Python 2.x 作为 python 命令的映射,而现代开发(如 pip、Django、Flask、Scrapy 等)大多基于 Python 3。本笔记将教你如何将默认 python 命令指向 Python3(如 Python 3.8、3.10)。

背景说明

在 Ubuntu 22.04 中:

  • 系统默认安装了 Python 2 和 Python 3;
  • 运行 python 命令默认启动的是 Python 2;
  • 运行 python3 启动的是 Python 3.x(通常是 3.10);

某些新脚本或依赖使用 python 命令,会触发 Python 2,导致语法错误或运行失败。


步骤 1:确认当前 python 绑定

bash 复制代码
which python
python --version

如果输出:

bash 复制代码
/usr/bin/python
Python 2.7.18

说明系统默认绑定的是 Python2。


步骤 2:使用 update-alternatives 正确切换至 Python3

bash 复制代码
# 添加 Python3.x(比如 python3.10)为 python 的候选项
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 100

# 配置默认版本
sudo update-alternatives --config python

如果有多个版本,系统会让你选择要用哪一个作为默认。

例如:

复制代码
There are 2 choices for the alternative python (providing /usr/bin/python):

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python2     50        auto mode
  1            /usr/bin/python2     50        manual mode
  2            /usr/bin/python3     100       manual mode

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

输入 2 并回车。


步骤 3:验证是否生效

bash 复制代码
python --version
which python

输出应为:

复制代码
Python 3.10.12
/usr/bin/python

步骤 4(可选):pip 同样做软连接

bash 复制代码
sudo ln -sf /usr/bin/pip3 /usr/bin/pip
pip --version

如需恢复为 Python2:

bash 复制代码
sudo update-alternatives --config python
# 选择 /usr/bin/python2

或者删除:

bash 复制代码
sudo update-alternatives --remove python /usr/bin/python3

注意事项

  • 不建议删除系统自带的 python2,某些老工具仍依赖它;
  • 使用 update-alternatives 更安全,避免破坏系统依赖;
  • update-alternatives 修改的是 /usr/bin/python 的指向(通过自动管理的软链接);

建议

在项目开发中仍建议使用虚拟环境:

bash 复制代码
python -m venv venv
source venv/bin/activate

参考

相关推荐
tingshuo29171 小时前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
IVEN_9 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang10 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮11 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling11 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮14 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽14 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健1 天前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞1 天前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python