Linux系统上Python版本信息不对,项目跑不起来?别急,先学会怎么查。查看Linux Python版本信息是每个开发者日常工作中最简单也最基础的操作linux系统官网,但很多人偏偏就在这一步踩坑。我见过不少新手在终端里乱敲命令,结果查到的版本和自己装的根本对不上。今天我就把这几种查看方法掰开揉碎了讲清楚。
怎么用python命令直接看版本

最直接的方法就是打开终端,敲下python --version或者python -V。这两个命令效果一样查看linux python版本信息,都会直接返回当前系统默认Python的版本号。比如你可能会看到类似“Python 3.8.10”这样的输出。这里有个细节要注意:如果你装了多个Python版本,系统默认的那个不一定是你想要的。
还有一种写法是python -VV,多了一个V,输出的信息会更详细,会带上编译时间和使用的编译器版本。对于排查环境问题来说,这个额外信息有时候能救命。我自己就靠这个定位过一次因为gcc版本不兼容导致的模块安装失败问题。
为什么python和python3结果不一样

这个问题太常见了,很多Linux发行版默认同时装了Python 2和Python 3。这时候你敲python --version得到的是Python 2的版本,敲python3 --version才是Python 3的版本。很多新手在这上面栽跟头,明明装了Python 3.9,但运行项目时提示语法错误,一查发现调的是Python 2.7。
解决办法很简单:养成用python3命令的习惯。如果你确实需要用python来指向Python 3linux多线程,可以通过修改软链接来实现,但我不建议你这么干,因为系统底层有些工具依赖Python 2查看linux python版本信息,改乱了可能会出问题。更好的做法是用虚拟环境,在虚拟环境里python指向哪个版本完全由你说了算。
如何查看系统里装了多少个Python

有时候你装了多个Python版本,比如2.7、3.6、3.8、3.9混在一起,光靠python --version根本看不全。这时候可以用ls /usr/bin/python<strong>或者ls /usr/local/bin/python</strong>来列出所有可执行的Python程序。输出结果会像这样:/usr/bin/python2.7 /usr/bin/python3.6 /usr/bin/python3.8。
还有一个更彻底的方法:用whereis python和which python来追踪Python安装路径。which只返回当前环境变量下能找到的第一个,whereis会列出所有可能的路径。对于排查环境变量配置问题,这两个命令配合使用效果很好。
另外,你可以通过python -c "import sys; print(sys.executable)"来查看当前Python解释器的实际路径。这个命令在虚拟环境里特别有用,能帮你确认你正在用的到底是哪个Python。

如何定位Python安装位置和版本细节
光知道版本号还不够,有时候你需要知道Python装在哪里、有哪些模块、路径怎么配的。python -c "import sys; print(sys.path)"可以列出Python搜索模块的所有路径。如果你自己装了一个模块但导入时报错,第一件事就是跑这个命令,看看你的模块在不在搜索路径里。
python -m pip --version可以查看pip的版本和它关联的Python版本。这个信息很关键,因为pip安装模块时会自动绑定到对应的Python解释器。很多人安装了模块但调用失败,就是因为pip和python不是一对。

对于更深入的需求,python -c "import sysconfig; print(sysconfig.get_config_var('VERSION'))"可以获取Python编译时的版本配置。平时用不到,但在做交叉编译或者源码编译安装时,这个信息就非常重要了。
版本信息看着简单,但背后藏着的是环境配置的全局。搞清楚你当前用的是哪个Python、它装在哪里、它关联了哪些模块,这些问题搞明白了,你在Linux上跑Python项目时能省下大把排错时间。下次别只敲一个python --version就完事了,多试几种方法,把环境摸透。
