杰瑞科技汇

为何运行Python却显示Python3?

“运行 python 显示 python3” 的意思是,当您在终端(Terminal)或命令行(Command Prompt)中输入 python 命令时,系统并没有执行您期望的 Python 2.x 版本,而是直接执行了 Python 3.x 版本,并提示您使用 python3 这个明确的命令。

为何运行Python却显示Python3?-图1
(图片来源网络,侵删)

下面我将为您详细解释为什么会这样,以及如何处理。


核心原因:Python 2 已停止支持,Python 3 是主流

  1. Python 2 已被淘汰:官方已于 2025 年 1 月 1 日停止对 Python 2 的支持,这意味着它不再接收安全更新,也不会修复新的 Bug,强烈建议所有项目都迁移到 Python 3。
  2. 命令命名策略
    • 为了避免与已经系统自带的旧版 Python 2(通常也叫 python)冲突,新版 Python 3 在安装时,其可执行文件被命名为 python3
    • 为了方便用户,Python 3 的安装程序通常会创建一个名为 python 的符号链接(Symbolic Link),指向 python3,这就是为什么您输入 python,它实际执行的是 python3

如何确认您的 Python 版本?

在终端中运行以下命令来查看您当前的 Python 环境:

# 查看指向 python 的实际文件
which python
# 或者
whereis python

输出可能类似于: /usr/bin/python/usr/local/bin/python

您可以查看这个文件指向哪里:

为何运行Python却显示Python3?-图2
(图片来源网络,侵删)
ls -l /usr/bin/python

输出可能类似于: lrwxrwxrwx 1 root root 7 Oct 20 10:30 /usr/bin/python -> python3 这明确表明 python 命令只是一个指向 python3 的快捷方式。


如何处理?(三种方案)

您可以根据自己的需求选择最适合的方案。

直接使用 python3 命令(推荐)

这是最清晰、最不容易混淆的方式,既然系统已经告诉您应该用 python3,那就直接使用它。

优点

  • 命令明确,代码和配置文件(如 #!/usr/bin/env python3)更具可读性。
  • 避免了 Python 2 和 Python 3 之间的潜在冲突。
  • 是目前社区和官方推荐的最佳实践。

操作: 将所有脚本中的 python 替换为 python3

# 运行脚本
python3 your_script.py
# 进入交互式解释器
python3

创建 python 命令的别名(方便快捷)

如果您习惯了使用 python 命令,但又不想手动输入 3,可以为您的终端会话创建一个别名。

优点

  • 方便快捷,无需改变使用习惯。
  • 只对当前终端会话有效,不会影响系统其他用户或程序。

操作: 打开您的终端配置文件(根据您使用的 Shell 选择):

  • 对于 Bash (macOS 默认, Linux 常见)
    nano ~/.bash_profile
    # 或者
    nano ~/.bashrc
  • 对于 Zsh (macOS Catalina 及以后默认)
    nano ~/.zshrc

在文件末尾添加以下一行:

alias python='python3'

保存文件后,让配置生效:

source ~/.bash_profile  # 如果编辑的是 .bash_profile
# 或者
source ~/.bashrc       # 如果编辑的是 .bashrc
# 或者
source ~/.zshrc        # 如果编辑的是 .zshrc

您就可以直接使用 python 命令,它会自动调用 python3 了。

注意:这种方法只对您当前的用户账户有效,如果您需要为所有用户设置,可以将 alias 命令添加到 /etc/bashrc/etc/zshrc 文件中(需要管理员权限)。

修改系统链接(谨慎操作)

这种方法会真正地将系统默认的 python 命令指向您的 Python 3 安装。这可能会破坏依赖 Python 2 的系统工具,因此非常不推荐普通用户操作。

操作步骤

  1. 找到 Python 3 的安装路径

    which python3
    # 输出可能是 /usr/bin/python3 或 /usr/local/bin/python3
  2. 创建链接: 需要使用 sudo 获取管理员权限。

    # 假设 python3 在 /usr/bin/python3
    sudo ln -s -f /usr/bin/python3 /usr/bin/python
    • ln -s:创建一个符号链接。
    • -f:如果目标文件已存在,则强制覆盖。

警告

  • 风险高:这会覆盖系统原有的 python 命令,如果某个系统工具依赖的是旧版 Python 2,它可能会因此损坏。
  • 可能被覆盖:系统更新可能会恢复这个链接。

总结与建议

方案 优点 缺点 适用场景
直接使用 python3 清晰、安全、推荐 需要手动输入 3 所有新项目和用户,特别是初学者。
创建别名 方便、快捷 仅对当前用户有效,需要重新加载配置 希望保持 python 使用习惯的个人开发者。
修改系统链接 彻底改变默认行为 风险高,可能破坏系统 极少数需要全局统一 Python 环境的高级用户。

给您的最终建议:

对于绝大多数情况,直接使用 python3 命令是最佳选择,这能确保您的代码在任何环境中都能清晰无误地运行,并且避免了潜在的兼容性问题。

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