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

参考

相关推荐
一隅论数智2 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时2 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
深圳老胡2 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
奇思妙想聪明勤奋的小羊2 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
Because_of_Her12 天前
并查集-听课笔记
笔记·算法·并查集