⚠️ 重要警告:

在开始之前,请务必了解以下几点:
- Python 2.7 已在 2025 年停止官方支持,这意味着它没有安全更新,并且可能包含未修复的漏洞。强烈建议将项目迁移到 Python 3。
- 修改默认 Python 版本可能会影响系统中依赖 Python 3 的工具和脚本,
- 包管理器:
pip,apt,yum,dnf等很多工具的底层脚本是用 Python 3 写的,如果指向 Python 2,可能会导致它们无法正常工作甚至损坏系统包管理器。 - 系统工具:Linux 系统上很多自带的工具和脚本也依赖于 Python 3。
- 包管理器:
- 最佳实践:通常不推荐修改系统级的默认 Python,更好的方法是使用
python3命令,或者为你的项目创建虚拟环境(venv或virtualenv),但在某些特殊情况下(必须运行一个古老的、不兼容 Python 3 的项目),你可能确实需要这样做。
如果你已经理解并愿意承担风险,请根据你的操作系统选择以下方法。
创建符号链接 (适用于 Linux 和 macOS)
这是最直接的方法,通过创建一个名为 python 的符号链接,让它指向 python2.7 的可执行文件。
检查 Python 2.7 的路径
确认你的系统中 Python 2.7 的安装路径,通常它在 /usr/bin/python2.7。

which python2.7
如果输出是 /usr/bin/python2.7,那就继续下一步。
备份原始的 python 链接 (非常重要!)
在修改之前,最好备份一下原始的 python 命令,以防需要恢复。
sudo mv /usr/bin/python /usr/bin/python.bak
创建新的符号链接
创建一个从 python 到 python2.7 的符号链接。
sudo ln -s /usr/bin/python2.7 /usr/bin/python
验证修改
检查一下 python --version 的输出。

python --version
如果输出是 Python 2.7.x,说明修改成功了。
如何恢复
如果你想恢复默认设置,可以执行以下命令:
# 1. 删除新创建的链接 sudo rm /usr/bin/python # 2. 恢复备份的原始文件 sudo mv /usr/bin/python.bak /usr/bin/python
使用 update-alternatives (推荐用于 Linux)
update-alternatives 是一个更安全、更强大的工具,用于管理系统中多个相同功能的命令(多个 Python 版本),它允许你在不同版本之间轻松切换,而不会直接删除或覆盖文件。
检查已安装的 Python 版本
确认你的系统中安装了哪些 Python 版本。
ls /usr/bin/python*
你可能会看到类似 python2.7, python3.6, python3.8, python3.9 等文件。
将 Python 2.7 和 Python 3 注册到 update-alternatives
你需要为每个你想要管理的 Python 版本都注册一下。
# 注册 python2.7 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 # 注册 python3 (你的默认python3是 python3.8) sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
--install:安装一个新的替代项。/usr/bin/python:要管理的命令。/usr/bin/python2.7:该命令的具体路径。1:优先级,数字越小,优先级越高,这里我们把 Python 2.7 的优先级设得更高。
选择要使用的版本
注册完成后,运行以下命令来手动选择默认版本。
sudo update-alternatives --config python
系统会列出所有已注册的 Python 版本,并提示你选择一个:
There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python2.7 1 auto mode
1 /usr/bin/python2.7 1 manual mode
2 /usr/bin/python3.8 2 manual mode
Press <enter> to keep the current choice[*], or type selection number:
输入你想使用的版本的编号(输入 1 来选择 Python 2.7),然后按回车。
验证修改
python --version
现在应该会显示你选择的版本。
如何切换版本
如果你想切换回 Python 3,只需再次运行 sudo update-alternatives --config python 并选择对应的编号即可。
macOS 特定注意事项
在 macOS 上,系统自带的 Python 2.7 通常位于 /usr/bin/python2.7。/usr/bin/python 这个路径通常不存在或者是一个旧的版本,创建符号链接的方法同样适用。
# 1. 检查路径 ls /usr/bin/python* # 2. 创建链接 (可能需要 sudo) sudo ln -s /usr/bin/python2.7 /usr/bin/python
macOS Catalina (10.15) 及以后版本的重要提示:
从 macOS Catalina 开始,macOS 默认不再安装 Python 2.7。/usr/bin/python 路径已经被移除,以鼓励开发者使用 Python 3,在这种情况下,你无法通过上述方法将 Python 2.7 设为默认,因为它根本不在系统里,你需要先通过 Homebrew 等方式安装 Python 2.7,然后再创建链接。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 符号链接 | 简单直接,一步到位 | 不够安全,容易破坏系统工具 | 快速测试,或者完全在一个隔离的、不依赖 Python 3 的环境中工作。 |
| update-alternatives | 安全、可逆、可管理多个版本 | 步骤稍多 | Linux 系统上的推荐方法,适合需要在不同 Python 版本间频繁切换的开发者。 |
再次强调,请谨慎操作,并优先考虑使用 python3 命令或虚拟环境。
