Как проверить версию Python в скриптах
-
sys.version
способ проверки версии Python -
sys.version_info
способ проверки версии Python -
Метод
platform.python_version()
для проверки версии на Python -
six
модульный метод проверки версии Python

В различных обстоятельствах нам необходимо знать версию Python, а точнее - версию интерпретатора Python, выполняющего файл скрипта Python.
sys.version
способ проверки версии Python
Информация об этой версии может быть получена из sys.version
в модуле sys
.
На Python 2.x
>>> import sys
>>> sys.version
'2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]'
или на Python 3.x
>>> import sys
>>> sys.version
'3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]'
sys.version_info
способ проверки версии Python
sys.version
возвращает строку, содержащую информацию о читаемой человеком версии текущего интерпретатора Python. Но такая информация как major release number
и micro release number
требует дополнительной обработки для дальнейшего использования в кодах.
sys.version_info
легко решает эту проблему, возвращая информацию о версии в виде именованного кортежа. Возвращается информация о версии,
Данные | Описание |
---|---|
major |
Основной номер выпуска |
micro |
Номер патча |
minor |
Номер версии |
releaselevel |
alpha , beta , candidate или release … |
serial |
Серийный номер выпуска |
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)
Вы можете сравнить текущую версию со справочной просто используя операторы >
, >=
, ==
, <=
или <
.
>>> import sys
>>> sys.version_info >= (2, 7)
True
>>> sys.version_info >= (2, 7, 11)
False
Мы могли бы добавить в скрипты assert
, чтобы убедиться, что скрипт работает с требованием минимальной версии на Python.
import sys
assert sys.version_info >= (3, 7)
Это вызовет AssertionError
, если интерпретатор не соответствует требованию версии.
Traceback (most recent call last):
File "C:\test\test.py", line 4, in <module>
assert sys.version_info >= (3, 7)
AssertionError
Метод platform.python_version()
для проверки версии на Python
python_version()
в модуле platform
возвращает версию Python в виде строки major.minor.patchlevel
.
>>> from platform import python_version
>>> python_version()
'3.7.0'
Или аналогично sys.version_info
, platform
также имеет метод возврата Python версии в виде кортежа (major, minor, patchlevel)
из строк - python_version_tuple()
.
>>> import platform
>>> platform.python_version_tuple()
('3', '7', '0')
six
модульный метод проверки версии Python
Если вам нужно только проверить, является ли версия Python 2.x или Python 3.x, вы можете использовать six
модуль для выполнения этой работы.
import six
if six.PY2:
print "Python 2.x"
if six.PY3:
print("Python 3.x")
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn