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


当前回答

已经有几个答案建议如何查询当前的python版本。为了以编程方式检查版本需求,我将使用以下两种方法之一:

# Method 1: (see krawyoti's answer)
import sys
assert(sys.version_info >= (2,6))

# Method 2: 
import platform
from distutils.version import StrictVersion 
assert(StrictVersion(platform.python_version()) >= "2.6")

其他回答

所有的答案都有深刻的见解

另一种方法是platform.python_version_tuple()

python3 -c “import platform; print(platform.python_version_tuple())”

(‘3’, ‘6’, ‘8’)

我喜欢系统。对于这样的东西。

>>> import sys
>>> sys.hexversion
33883376
>>> '%x' % sys.hexversion
'20504f0'
>>> sys.hexversion < 0x02060000
True

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

python -V

这在“man python”中有记录。

从IPython控制台

!python -V

尝试使用os。Popen在变量中读取它:

import os
ver = os.popen('python -V').read().strip()
print(ver)

要从命令行检查,在一个命令中,但包括major, minor, micro version, releaslevel和serial,然后调用与你的脚本使用的相同的Python解释器(即相同的路径):

> path/to/your/python -c "import sys; print('{}.{}.{}-{}-{}'.format(*sys.version_info))"

3.7.6-final-0

注意:.format()而不是f-strings或'.'.join()允许您使用任意格式和分隔符字符,例如,使其成为一个可greppable的单字字符串。我把它放在bash实用程序脚本中,报告所有重要的版本:python, numpy, pandas, sklearn, MacOS, xcode, clang, brew, conda, anaconda, gcc/g++等。对日志记录、可复制性、故障排除和错误报告等很有用。