Как проверить версию Python в скриптах

Jinku Hu 30 Январь 2023 18 Апрель 2020
  1. sys.version способ проверки версии Python
  2. sys.version_info способ проверки версии Python
  3. Метод platform.python_version() для проверки версии на Python
  4. six модульный метод проверки версии Python
Как проверить версию 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")
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Сопутствующая статья - Python Version