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


当前回答

import sys
sys.version.split(' ')[0]

sys。版本给你你想要的,只是选择第一个数字:)

其他回答

已经有几个答案建议如何查询当前的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")

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

python -V

这在“man python”中有记录。

从IPython控制台

!python -V

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

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

该信息可在sys。sys模块中的版本字符串:

>>> import sys

人类可读的:

>>> print(sys.version)  # parentheses necessary in python 3.       
2.5.2 (r252:60911, Jul 31 2008, 17:28:52) 
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)]

如需进一步处理,请使用sys。Version_info或sys.hexversion:

>>> sys.version_info
(2, 5, 2, 'final', 0)
# or
>>> sys.hexversion
34014192

为了确保脚本以最小版本的Python解释器要求运行,在代码中添加以下内容:

assert sys.version_info >= (2, 5)

比较主要版本和次要版本信息。在元组中添加micro(= 0,1等)和releaselevel (='alpha','final'等)。然而,请注意,最好是“回避”检查是否有特定的功能,如果没有,就采取变通措施(或退出)。有时,新版本的特性会消失,被其他特性所取代。

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

import six

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