如何检查哪个版本的Python解释器正在运行我的脚本?


当前回答

从命令行(注意大写的“V”):

python -V

这在“man python”中有记录。

从IPython控制台

!python -V

其他回答

检查Python版本:Python -V或Python——version或apt-cache policy Python

你也可以运行whereis python查看安装了多少个版本。

从stdlib中使用平台的python_version:

from platform import python_version
print(python_version())

# 3.9.2

下面是一个简短的命令行版本,它可以直接退出(方便脚本和自动执行):

python -c "print(__import__('sys').version)"

或者只是大调、小调和微调:

python -c "print(__import__('sys').version_info[:1])" # (2,)
python -c "print(__import__('sys').version_info[:2])" # (2, 7)
python -c "print(__import__('sys').version_info[:3])" # (2, 7, 6)

可以这样写:

#!/usr/bin/env/python
import sys
if sys.version_info<(2,6,0):
  sys.stderr.write("You need python 2.6 or later to run this script\n")
  exit(1)

在你的脚本顶部。

请注意,根据脚本中的其他内容,比目标版本更老的python甚至可能无法加载脚本,因此不会报告此错误。作为一种变通方法,您可以在一个脚本中运行上述操作,该脚本导入了更现代的代码。

from sys import version_info, api_version, version, hexversion

print(f"sys.version: {version}")
print(f"sys.api_version: {api_version}")
print(f"sys.version_info: {version_info}")
print(f"sys.hexversion: {hexversion}")

输出

sys。版本:3.6.5 (v3.6.5:f59c0932b4, march 28 2018, 17:00:18) [MSC .1900 64位(AMD64)] sys。api_version: 1013 sys。version_info: sys。Version_info (major=3, minor=6, micro=5, releaslevel ='final', serial=0) sys。hexversion: 50726384