Linux终端下查看Python版本的常用命令有哪些
python3 --version(或简写为 python3 -V)。如果服务器保留了早期环境,也可使用 python --version。此外,当需要确认具体由哪个可执行文件运行或在脚本中提取版本时,还可通过 which、type 以及内建的 sys 和 platform 模块进行精准查询。
一、直接查看版本号的核心命令
绝大多数现代Linux发行版(如Ubuntu 20.04+、Debian 11+、Rocky Linux、CentOS 8+等)默认安装并使用Python 3。在终端中,可以通过以下命令直接输出主版本号:
终端命令:标准长参数
python3 --version
终端命令:短参数缩写(大写字母V)
python3 -V
执行后终端会直接输出简短的版本标识,例如:
Python 3.10.12
需要特别注意大写和小写的区别:参数 -V 必须为大写。如果输入小写的 python3 -v,该选项在Python解释器中代表“详细输出模式(verbose)”,不仅不会简短输出版本号,反而会直接启动交互式终端并打印大量的模块导入追踪日志。
关于 python 与 python3 命令的对应关系
在较旧的系统或部分配置了符号链接的系统中,直接输入 python -V 可能返回 Python 2.x(例如 Python 2.7.18),也可能提示 command not found。因为PEP 394规范建议各发行版逐步取消将 python 默认指向Python 2的做法,因此在明确需要Python 3时,优先输入 python3 是最规范且稳妥的操作习惯。
二、多版本与路径排查:查明执行的具体是哪一个Python
在Linux开发或运维服务器中,系统中经常并存多个Python环境,例如系统自带的Python、用户自行编译安装的Python、以及虚拟环境或Conda环境中的解释器。此时仅看版本号可能无法得知该解释器的具体存放位置。
1. 使用 which 命令定位可执行文件
which 会沿着当前用户的 $PATH 环境变量目录,查找并打印第一个匹配的执行路径:
which python3
示例输出:
/usr/bin/python3
如果想查看环境变量路径中包含的所有匹配文件,可加入 -a 参数:
which -a python3
示例输出:
/usr/local/bin/python3
/usr/bin/python3
这说明 /usr/local/bin/python3 的优先级高于 /usr/bin/python3,终端直接敲击 python3 时会优先执行前者。
2. 使用 type 命令识别别名与内置命令
部分开发者的终端环境中可能设置了 alias(别名)。type 命令可以明确告诉我们当前命令是可执行文件、别名还是函数:
type -a python3
示例输出:
python3 is /usr/bin/python3
如果配置了别名,它会清晰提示 python is aliased to python3。
3. 追踪符号链接(软链接)真实源头
Linux下的 /usr/bin/python3 通常是一个符号链接。为了确认它最终链接到具体哪个小版本的二进制文件,可以使用 readlink:
readlink -f $(which python3)
示例输出:
/usr/bin/python3.10
通过这行命令,可以精确知晓底层真正提供执行能力的二进制实体。
三、获取详细构建信息:利用Python内部模块
有时仅仅知道 3.10.12 还不够。在编译C扩展库、分析依赖兼容性或处理排错时,往往需要知晓系统的GCC编译版本、位数架构(64位还是32位)以及构建日期。这类信息可以通过直接运行一行Python代码来提取。
1. 使用 sys 模块提取完整信息
利用 -c 参数在终端单行执行Python语句:
python3 -c "import sys; print(sys.version)"
示例输出:
3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
输出中不仅包含主次版本号,还包含了编译器版本(GCC 11.4.0)及编译时间戳。
如果希望在Shell脚本中只提取结构化的主次版本元组,可执行:
python3 -c "import sys; print(sys.version_info)"
示例输出:
sys.version_info(major=3, minor=10, micro=12, releaselevel='final', serial=0)
2. 使用 platform 模块获得纯净版本号
platform 模块特别适合在CI/CD流水线或自动化Bash脚本中快速赋值变量:
python3 -c "import platform; print(platform.python_version())"
示例输出:
3.10.12
3. 直接进入交互式REPL终端
如果只是临时确认并准备测试语句,直接在终端输入 python3 回车:
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.
>>> exit()
确认完毕后输入 exit() 或按快捷键 Ctrl + D 即可退出。
四、常见易错点与注意事项
在 Ubuntu、Debian 或 RHEL 等发行版中,系统核心包管理工具(例如
apt、add-apt-repository、dnf 等)均深度依赖系统自带的 Python 版本(如系统的 3.10)。如果强行修改符号链接使其指向自行编译的 3.11 或 3.12,极易导致系统级包管理器直接崩溃报错。
- 大小写敏感:在Linux中命令及参数严格区分大小写,务必牢记使用大写
-V而非小写-v。 - 虚拟环境覆盖:一旦运行
source venv/bin/activate激活了虚拟环境,当前的$PATH变量开头会被添加虚拟环境的bin目录。此时执行python3 -V会输出虚拟环境绑定的版本,退出虚拟环境只需执行deactivate。 - 无权限与环境变量缺失:在Cron定时任务或某些无登录Shell中,系统的
PATH可能只有/usr/bin:/bin,可能导致自定义路径(如/usr/local/bin)下的Python无法被识别。编写脚本时建议写入绝对路径(如/usr/bin/python3)。
五、常用命令速查总结
为了便于在不同场景下快速检索,下表归纳了Linux终端查看Python版本及相关环境的最有效命令:
| 场景需求 | 常用命令 | 输出内容与特点 |
|---|---|---|
| 快速查看版本 | python3 -V 或 python3 --version |
输出标准版本号(例如 Python 3.10.12) |
| 旧系统兼容查看 | python -V |
输出Python 2.x版本或系统预设版本 |
| 定位执行文件路径 | which python3 |
输出当前默认执行的绝对路径(例如 /usr/bin/python3) |
| 查找所有匹配路径 | which -a python3 |
列出 $PATH 中所有同名的Python可执行文件 |
| 穿透追踪软链接 | readlink -f $(which python3) |
直接解析出底层的具体二进制文件真实路径 |
| 自动化脚本提取版本 | python3 -c "import platform; print(platform.python_version())" |
仅输出无前缀版本字符串(例如 3.10.12),便于变量赋值 |
| 排查GCC与编译信息 | python3 -c "import sys; print(sys.version)" |
提供主版本、GCC版本号及具体构建时间戳 |
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













