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

参考

相关推荐
张小殊.15 小时前
LoongForge TAOT 训练方案,解决MoE EP不均衡问题
人工智能·python·深度学习·机器学习·ai
玫幽倩15 小时前
2026黄河流域公安院校-电子物证单项赛(程序逆向分析+服务器取证)
运维·服务器·python·电子取证·逆向·程序分析·服务器取证
北斗落凡尘15 小时前
LangGraph 入门实战(4)
python·langchain
Delta-delta15 小时前
win+ubuntu24.04双系统安装
ubuntu
疯狂打码的少年16 小时前
【数据结构】栈的应用:表达式求值(后缀表达式)
java·数据结构·笔记·算法
liwulin050616 小时前
【PYTHON】使用Selenium + ChromeDriver以及XPATH语法
开发语言·python·selenium
copyer_xyf16 小时前
Agentic RAG 实战:PostgreSQL + LangGraph 一条链路
python·postgresql·agent
动力 continue16 小时前
Python 元类与异常类:类的“制造工厂”与“报错定制师”
开发语言·python·制造
147API16 小时前
Python批量生成蒸馏数据,并发、重试、幂等和断点续跑
开发语言·jvm·python
青 春 记 忆16 小时前
零基础入门python04:用注册校验理解字典、集合和条件判断
开发语言·vscode·python·python3.11