Linux终端查看Python版本的命令有哪些
python3 --version(或简写 python3 -V)。如果系统中仍然保留了旧版兼容环境或预设了全局软链接,也可以使用 python --version。除了获取简单的版本号字符串,当需要确认可执行文件存放路径、排查多版本并存冲突,或者在不运行完整交互式终端的前提下提取构建细节时,还可以使用 which、whereis 以及 Python 内置的 sys 模块。本文将按实际使用需求分别梳理这些命令的具体格式与适用场景。
一、首选直接查询命令:快速获取版本号
在大多数日常维护与开发场景中,目标通常只是快速确认当前环境中的 Python 大版本和小版本号。以下两条命令是最常用、也最推荐首先尝试的命令。
1. 查看 Python 3 版本号(首选)
由于 Python 2 已经在 2020 年正式停止维护,现代 Linux 发行版(如 Ubuntu 20.04+、Debian 11+、CentOS Stream、Rocky Linux、Fedora 等)默认预装的都是 Python 3,且系统为了保障系统核心工具的稳定性,通常不会直接将全局的 python 别名指向 Python 3,而是严格使用 python3 命令。
$ python3 --version
[示例输出] Python 3.10.12
参数中的大写字母 -V 是 --version 的简写形式,两者在功能与输出上完全等同:
$ python3 -V
[示例输出] Python 3.10.12
2. 查看默认 python 别名版本号
如果在终端中直接输入 python --version,其执行结果取决于操作系统当前对无后缀 python 符号链接的配置方式:
$ python --version
该命令在不同环境下可能出现三种典型结果:
- 输出 Python 2.x.x:说明系统处于较旧发行版(如 CentOS 7),或安装了兼容旧项目的 Python 2 环境。
- 输出 Python 3.x.x:说明系统已通过软件包(如 Ubuntu 的
python-is-python3)或环境管理工具将默认python软链接指向了 Python 3。 - 报错 command not found:说明系统遵循 PEP 394 规范,未创建默认的无数字后缀软链接,此时直接切换为
python3 --version即可。
二、定位路径与排查多版本:确认执行的是哪个 Python
在很多 Linux 服务器上,可能会同时存在系统预装 Python、用户自行编译的 Python、虚拟环境以及 Conda 环境。仅仅打印出版本号还不足以确认正在执行的具体文件。结合以下路径查询命令,可以明确当前调用的 Python 二进制程序究竟存放在哪一个目录下。
1. 使用 which 定位当前生效的解释器路径
which 命令会顺着当前用户的环境变量 $PATH 中所列出的目录顺序,自前往后进行检索,并返回第一个匹配到的可执行文件绝对路径。
$ which python3
[示例输出] /usr/bin/python3
如果处于激活的 Python 虚拟环境(如 venv)中,输出结果会自动指向该虚拟环境目录:
[示例输出] /home/user/myproject/venv/bin/python3
2. 使用 whereis 查询系统中所有的 Python 安装分布
与 which 只返回首个匹配项不同,whereis 会直接在标准的系统二进制目录、源码目录和 man 帮助手册目录中全面搜索与关键词匹配的所有文件。
$ whereis python3
[示例输出] python3: /usr/bin/python3 /usr/lib/python3 /etc/python3 /usr/share/python3 /usr/share/man/man1/python3.1.gz
3. 使用 type -a 检查别名与多重定义
type 是 Bash 内置命令。加上 -a 参数后,它会列出终端中该命令的所有定义形式,包括 Shell 别名(alias)、内置函数以及在 PATH 中的所有二进制路径。
$ type -a python3
[示例输出] python3 is /usr/bin/python3
python3 is /bin/python3
三、运行期内省:获取详细编译信息与结构化版本
普通的 --version 仅返回一个简短的版本号字符串。而在进行自动化脚本编写、CI/CD 部署或排查底层 C 扩展依赖兼容性时,往往需要知道解释器的具体编译日期、使用的 GCC 编译器版本,甚至是便于代码解析的元组数据。
1. 单行调用 sys.version
利用 Python 的 -c 参数,可以在不启动完整交互环境的情况下直接在终端执行 Python 代码:
$ python3 -c "import sys; print(sys.version)"
[示例输出] 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
从输出中不仅能读出 3.10.12,还能获知该解释器是在 2023 年 6 月 11 日通过 GCC 11.4.0 编译构建的,这在排查编译类第三方库(如 numpy、torch、cffi 等)的二进制兼容问题时十分关键。
2. 获取结构化元组:sys.version_info
如果需要在 Shell 脚本中以编程方式比较版本(例如判断是否大于 Python 3.8),可以使用 sys.version_info:
$ python3 -c "import sys; print(sys.version_info)"
[示例输出] sys.version_info(major=3, minor=10, micro=12, releaselevel='final', serial=0)
还可以直接提取其中的主版本号或次版本号:
$ python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')"
[示例输出] 3.10
3. 使用 platform 模块获取纯净版本号
如果脚本需要与标准输出保持严格的格式对接,可使用内置的 platform 模块:
$ python3 -c "import platform; print(platform.python_version())"
[示例输出] 3.10.12
四、不同场景下的命令选择指南与注意事项
了解所有查看命令后,可以根据工作中的具体诉求选择最合适的指令组合:
| 目标需求 | 推荐命令 | 关注重点与典型表现 |
|---|---|---|
| 快速查看日常开发版本 | python3 --version |
最通用、不易出错,适用于现代主流 Linux 发行版。 |
| 检查旧脚本能否直接执行 | python -V |
判断系统是否保留了 Python 2 或配置了默认全局别名。 |
| 确认当前执行的绝对路径 | which python3 |
确认当前命令是否来源于虚拟环境或自定义安装路径。 |
| 系统内多版本全面排查 | whereis python3 |
列出系统盘中所有存在的二进制和库目录,便于多版本管理。 |
| 脚本内自动化提取版本数据 | python3 -c "import sys; print(sys.version_info)" |
获取元组数据,避免手动切分字符串带来的解析风险。 |
注意事项:切勿随意修改系统全局软链接
在 Ubuntu/Debian 等系统中,诸如 apt 包管理器内部的许多组件直接依赖系统默认安装的特定 Python 3 次版本(如 3.10)。如果自行安装了 Python 3.11 或 3.12,请勿强行通过命令覆盖 /usr/bin/python3 软链接,否则极易导致系统级工具崩溃。多版本切换建议使用虚拟环境、update-alternatives 工具或专用版本管理工具(如 pyenv)。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









