Сообщить об ошибке.

Различные сведения о версии Python

Получение сведений об интерпретаторе Python из кода

Следующие переменные модуля sys предоставляют информацию о версии интерпретатора Python из кода.

Содержание:


sys.copyright:

Переменная sys.copyright возвращает строку, содержащая авторские права, относящиеся к интерпретатору Python.

sys.version:

Переменная sys.version возвращает строку, содержащую номер версии интерпретатора Python плюс дополнительную информацию о номере сборки и используемом компиляторе.

Данная строка отображается при запуске интерактивного переводчика. Не извлекайте информацию из нее, лучше используйте sys.version_info и функции, предоставляемые модулем platform.

sys.api_version:

Переменная sys.api_version возвращает версию API языка C для этого интерпретатора Python. Программисты могут использовать ее при отладке конфликтов версий между Python и модулями расширения.

sys.version_info:

Переменная sys.api_version возвращает кортеж, содержащий пять компонентов номера версии:

  • major,
  • minor,
  • micro,
  • releaselevel,
  • serial.

Все значения, кроме releaselevel, являются целыми числами.

Значения releaselevel:

  • 'alpha',
  • 'beta',
  • 'candidate'
  • 'final'.

Компоненты также могут быть доступны по имени, sys.version_info[0] что эквивалентно sys.version_info.major и так далее.

sys.implementation:

Атрибут sys.implementation представляет собой объект, содержащий информацию о реализации текущего запущенного интерпретатора Python. Следующие атрибуты должны существовать во всех реализациях Python.

name - это идентификатор реализации, например "cpython". Фактическая строка определяется реализацией Python, но она гарантированно будет строчной.

version - это именованный кортеж, в том же формате, что и sys.version_info. Он представляет собой версию реализации Python. Значение version отличается от конкретной версии языка Python, которой соответствует текущий работающий интерпретатор. Например, для PyPy 1.8 sys.implementation.version может быть sys.version_info (1, 8, 0, 'final', 0), тогда как sys.version_info будет sys.version_info (2, 7, 2, 'final', 0). Для CPython они имеют одинаковое значение, так как это эталонная реализация.

hexversion - это версия реализации в шестнадцатеричном формате, например sys.hexversion.

cache_tag - это тег, используемый механизмом импорта в именах файлов кэшируемых модулей. По соглашению, это будет составная часть имени и версии реализации, например, "cpython-38". Хотя реализация Python может использовать другое значение, если это уместно. Если для cache_tag установлено значение None, это означает, что кэширование модуля должно быть отключено.

Атрибут sys.implementation может содержать дополнительные атрибуты, специфичные для реализации Python. Эти нестандартные атрибуты должны начинаться с подчеркивания и здесь не описаны. Независимо от содержимого sys.implementation не изменится ни во время выполнения интерпретатора, ни между версиями реализации. Однако, может измениться между версиями языка Python.

sys.hexversion:

Значение sys.hexversion содержит номер версии, закодированный как одно целое число. Оно гарантированно увеличивается с каждой версией, включая надлежащую поддержку выпусков. Например, чтобы проверить, что интерпретатор Python имеет версию не ниже 3.5.2, используйте:

if sys.hexversion >= 0x030502F0:
    # используйте дополнительные функции
    ...
else:
    # используйте альтернативную реализацию 
    # или предупредите пользователя
    ...

Значение sys.hexversion это шестнадцатеричный номер версии и представляет собой результат передачи его встроенной функции hex(). Для более удобного получения той же самой информации может использоваться именованный кортеж, возвращаемый sys.version_info.

sys.winver:

Номер версии, используемый для формирования ключей реестра на платформах Windows. Значение хранится как строковый ресурс 1000 в DLL-библиотеке Python. Обычно это первые три символа, возвращаемые sys.version. Значение sys.winver представлен в модуле sys в ознакомительных целях, изменение этого значения не влияет на ключи реестра, используемые Python.