Linux下怎么分别查看Python 2和Python 3版本

洛溪
洛溪
发布时间:2026-10-29| 8人浏览过
原创

在Linux系统中分别查看Python 2和Python 3版本号的实用指南,涵盖独立命令探测、符号链接追溯、脚本内环境检测与常见异常排查。

在 Linux 操作系统中,很多发行版或服务器运维环境中都曾长期存在 Python 2 与 Python 3 共存的情况。若在终端里直接执行泛指的 python 命令,系统给出的版本往往取决于当前系统的符号链接配置或已激活的虚拟环境,极易引发混淆。要准确分别查看这两者的版本,最直接可靠的方式是在命令行中明确指定版本前缀:通过 python2 --version(或 python2 -V)查看 Python 2 的具体发行版本,通过 python3 --version(或 python3 -V)查看 Python 3 的具体发行版本。本文将详细讲解这两条命令的使用细节、符号链接追溯技巧、脚本内环境检测方法以及常见异常的排查逻辑。

一、使用版本专属命令分别检测

Linux 系统将 Python 2 和 Python 3 的主要解释器二进制文件分别命名为 python2 与 python3。使用带有大写参数 -V 或完整参数 --version 即可输出其确切的版本编号,这是区分二者最高效的方式。

1. 查看 Python 2 的版本

打开终端窗口,输入以下命令之一:

# 执行 Python 2 版本检测
python2 -V
# 或者使用长参数形式
python2 --version

# 示例输出:
Python 2.7.18

如果系统已安装 Python 2,终端会直接输出形如 Python 2.7.x 的字符串。在绝大多数 Linux 长期支持版本(如 CentOS 7)中,最终内置的稳定维护版本多为 2.7.18。

2. 查看 Python 3 的版本

同理,检测 Python 3 时需明确执行:

# 执行 Python 3 版本检测
python3 -V
# 或者使用长参数形式
python3 --version

# 示例输出:
Python 3.10.12

终端返回的版本号为主版本、次版本与微版本构成的三段式数字(例如 3.8.10、3.10.12 或 3.11.7),该输出直接证明当前调用的确系 Python 3 解释器。

3. 为什么不建议仅运行 python -V

直接执行 python -V 存在明显的不确定性:在旧版本系统(例如 Ubuntu 16.04、CentOS 7)中,默认别名通常绑定到 Python 2;而在现代主流发行版(如 Ubuntu 20.04+、Debian 11+)中,为了避免开发者误用已淘汰的 Python 2,系统往往默认不提供通用的 python 软链接,直接输入会出现 command not found;如果系统安装了 python-is-python3 工具包,则它又会映射到 Python 3。因此,在需要明确区分两者的场景下,必须使用带有主版本编号的独立命令。

Linux下怎么分别查看Python 2和Python 3版本
图 1:Linux 环境下分别验证与深查 Python 2 和 Python 3 版本的操作四步法

二、追溯执行路径与符号链接

在 Linux 文件系统中,/usr/bin/python2 与 /usr/bin/python3 往往并非实际的二进制执行体,而是指向具体次版本文件的符号链接(Symbolic Link)。追溯其实际路径有助于进一步确认执行文件的来源。

1. 查找二进制程序路径

使用 which 或 type -a 命令可以列出当前终端环境下优先命中的命令路径:

# 查询 Python 2 与 Python 3 的命令文件位置
which python2
which python3

# 示例输出:
/usr/bin/python2
/usr/bin/python3

2. 解开符号链接层级

使用带有长格式参数的 ls -l 或 readlink -f,可以清晰查看到链接的真实终点:

# 查看链接所指向的具体文件
ls -l /usr/bin/python2
ls -l /usr/bin/python3

# 示例输出:
lrwxrwxrwx 1 root root 9 Mar 15 2021 /usr/bin/python2 -> python2.7
lrwxrwxrwx 1 root root 10 Jun 2 2023 /usr/bin/python3 -> python3.10

通过输出可以清楚发现:python2 指向了系统级的可执行文件 python2.7,而 python3 则指向了 python3.10。这表明系统内部在物理存储上是完全隔离的,分别调用各自的链接即互不干扰。

Linux下怎么分别查看Python 2和Python 3版本
图 2:Linux 系统中命令别名、符号链接与实际二进制文件的对应关系

三、交互式终端与代码内获取详细构建信息

参数 -V 仅输出了版本号数字。若需要进一步确认该 Python 解释器的具体构建日期、GCC 编译器版本或在自动化脚本中做运行时版本判断,还可以采用以下两种方式。

1. 进入交互式命令行查看首行横幅

在终端直接执行 python2 或 python3,解释器在初始化完成后会打印详细欢迎标语:

# 启动 Python 3 交互终端
python3

# 启动后的首行横幅示例:
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

首行清晰显示了微版本号(3.10.12)、编译时间戳以及编译所采用的工具链(GCC 11.4.0)。确认完毕后输入 exit() 或按组合键 Ctrl + D 即可安全退出。

2. 通过 sys 模块在单行或脚本中提取

在自动化运维任务(如 Bash 脚本、CI/CD 构建流)中,需要将版本判断直接嵌入逻辑代码,可以使用内置的 sys 模块:

# 查看 Python 2 完整版本描述字符串
python2 -c "import sys; print(sys.version)"

# 查看 Python 3 结构化元组信息
python3 -c "import sys; print(sys.version_info)"

# 示例输出:
sys.version_info(major=3, minor=10, micro=12, releaselevel='final', serial=0)

sys.version_info 返回具名元组,通过 sys.version_info.major 即可获取主版本数字(2 或 3),便于程序做出针对性兼容分支选择。

Linux下怎么分别查看Python 2和Python 3版本
图 3:三种版本检测维度在信息颗粒度与适用场景上的权衡对比

四、常见异常场景与排查决策

在实际执行查看命令时,可能会遇到命令找不到或返回结果与预期不符的情况。通常对应以下几类具体场景:

1. 报错 "command not found"

当执行 python2 -V 返回:

bash: python2: command not found

这说明当前 Linux 系统并未安装 Python 2 环境,或者其二进制所在目录未包含在 $PATH 环境变量中。现代主流发行版(如 Ubuntu 20.04 及后续版本)在默认最小化安装中均已完全剔除 Python 2。同理,若 python3 也未找到,则需要通过发行版包管理器(如 apt install python3 或 yum install python3)进行基础安装。

2. 虚拟环境(Virtualenv 或 Conda)的干扰

如果当前终端提示符前存在类似 (myenv) 或 (base) 的前缀,说明已经激活了虚拟环境。激活脚本会将虚拟环境的 bin 目录前置到 $PATH 首位:

  • 在此状态下运行 python -V,查看的是该虚拟环境中绑定的 Python 版本,而非宿主操作系统的全局默认版本。
  • 如需强制查看系统级自带的 Python 版本,应跳过环境变量解析,直接使用绝对路径:/usr/bin/python2 -V 或 /usr/bin/python3 -V。

重要提示:请勿为了图省事而在 /usr/bin/ 中随意创建将 python 强制链接到 python3 的软链接。在部分老旧的 RHEL/CentOS 系统中,系统包管理器 yum 深度依赖 Python 2 运行,随意修改全局 python 指向可能直接导致系统更新和软件安装命令报错崩溃。

Linux下怎么分别查看Python 2和Python 3版本
图 4:查看 Python 版本时的异常分支判断与决策流程

五、常用查看方式与速查参考

为了便于日常快速查询与运维核对,下表对各类查看场景对应的操作命令及预期返回形式进行了汇总:

目标任务 推荐命令 典型输出示例 主要应用场景
明确查看 Python 2 python2 -V Python 2.7.18 维护老旧脚本、CentOS 7 等历史系统日常巡检
明确查看 Python 3 python3 -V Python 3.10.12 主流现代开发、依赖环境部署与环境确认
查看实际命令指向路径 which python3 /usr/bin/python3 判断当前命令是否被别名、Conda 或虚拟环境劫持
解开最终物理文件 readlink -f $(which python3) /usr/bin/python3.10 追踪底层符号链接,确认具体执行的 ELF 二进制
脚本内部获取版本结构 python3 -c "import sys; print(sys.version_info)" sys.version_info(major=3, ...) Shell 脚本编写、构建流环境校验与版本断言

综上所述,在 Linux 系统下查看 Python 版本的核心准则在于“放弃通用命令,显式指定版本”。只要在日常操作中坚持使用 python2 -V 和 python3 -V,配合符号链接查询与 sys 模块深度检测,就能在任何复杂的 Linux 发行版环境中清晰、准确地掌控 Python 解释器的具体版本信息。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。