杰瑞科技汇

如何将Python2.7设为默认Python版本?

⚠️ 重要警告:

如何将Python2.7设为默认Python版本?-图1
(图片来源网络,侵删)

在开始之前,请务必了解以下几点:

  1. Python 2.7 已在 2025 年停止官方支持,这意味着它没有安全更新,并且可能包含未修复的漏洞。强烈建议将项目迁移到 Python 3。
  2. 修改默认 Python 版本可能会影响系统中依赖 Python 3 的工具和脚本,
    • 包管理器pip, apt, yum, dnf 等很多工具的底层脚本是用 Python 3 写的,如果指向 Python 2,可能会导致它们无法正常工作甚至损坏系统包管理器。
    • 系统工具:Linux 系统上很多自带的工具和脚本也依赖于 Python 3。
  3. 最佳实践:通常不推荐修改系统级的默认 Python,更好的方法是使用 python3 命令,或者为你的项目创建虚拟环境(venvvirtualenv),但在某些特殊情况下(必须运行一个古老的、不兼容 Python 3 的项目),你可能确实需要这样做。

如果你已经理解并愿意承担风险,请根据你的操作系统选择以下方法。


创建符号链接 (适用于 Linux 和 macOS)

这是最直接的方法,通过创建一个名为 python 的符号链接,让它指向 python2.7 的可执行文件。

检查 Python 2.7 的路径

确认你的系统中 Python 2.7 的安装路径,通常它在 /usr/bin/python2.7

如何将Python2.7设为默认Python版本?-图2
(图片来源网络,侵删)
which python2.7

如果输出是 /usr/bin/python2.7,那就继续下一步。

备份原始的 python 链接 (非常重要!)

在修改之前,最好备份一下原始的 python 命令,以防需要恢复。

sudo mv /usr/bin/python /usr/bin/python.bak

创建新的符号链接

创建一个从 pythonpython2.7 的符号链接。

sudo ln -s /usr/bin/python2.7 /usr/bin/python

验证修改

检查一下 python --version 的输出。

如何将Python2.7设为默认Python版本?-图3
(图片来源网络,侵删)
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 命令或虚拟环境。

分享:
扫描分享到社交APP
上一篇
下一篇