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


当前回答

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

另一种方法是platform.python_version_tuple()

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

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

其他回答

对于windows,进入命令提示符并键入此命令以获取python版本:

python --version

Or

python -V

有六个模块,你可以做到:

import six

if six.PY2:
  # this is python2.x
else:
  # six.PY3
  # this is python3.x

就像Seth说的,主脚本可以检查sys。Version_info(但请注意,它直到2.0才出现,所以如果你想支持旧版本,你需要检查sys模块的另一个version属性)。

但是,您仍然需要注意不要在文件中使用旧版本Python中没有的任何Python语言特性。例如,这在Python 2.5及更高版本中是允许的:

try:
    pass
except:
    pass
finally:
    pass

但在较旧的Python版本中不能工作,因为只能使用except OR最终匹配try。所以为了与旧版本的Python兼容,你需要写:

try:
    try:
        pass
    except:
        pass
finally:
    pass

sys。Version_info在3.7时似乎没有返回元组。相反,它返回一个特殊的类,因此使用元组的所有示例都不起作用,至少对我来说是这样。下面是python控制台的输出:

>>> import sys
>>> type(sys.version_info)
<class 'sys.version_info'>

我发现使用sys.version_info的组合。Major和sys.version_info。小调似乎就足够了。例如,……

import sys
if sys.version_info.major > 3:
    print('Upgrade to Python 3')
    exit(1)

检查是否运行Python 3。你甚至可以用…

import sys
ver = sys.version_info
if ver.major > 2:
    if ver.major == 3 and ver.minor <= 4:
        print('Upgrade to Python 3.5')
        exit(1)

可以检查你是否至少运行Python 3.5。

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

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