Управление версиями API и ABI

CPython предоставляет номер своей версии в следующих макросах. Обратите внимание, что они соответствуют версии, с которой был собран код, и не обязательно той версии, которая использовалась во время выполнения.

Смотрите Стабильность C API для обсуждения стабильности API и ABI в разных версиях.

PY_MAJOR_VERSION

3 в 3.4.1a2.

PY_MINOR_VERSION

4 в 3.4.1a2.

PY_MICRO_VERSION

1 в 3.4.1a2.

PY_RELEASE_LEVEL

a в 3.4.1a2. Это может быть 0xA для альфа-версии, 0xB для бета-версии, 0xC для версии-кандидата или 0xF для финальной версии.

PY_RELEASE_SERIAL

2 в 3.4.1a2. Ноль для окончательных версий.

PY_VERSION_HEX

Номер версии Python, закодированный в виде одного целого числа.

Базовую информацию о версии можно найти, обработав ее как 32-разрядное число следующим образом:

Байты

Биты (в порядке возрастания)

Значение

Значение для 3.4.1a2

1

1-8

PY_MAJOR_VERSION

0x03

2

9-16

PY_MINOR_VERSION

0x04

3

17-24

PY_MICRO_VERSION

0x01

4

25-28

PY_RELEASE_LEVEL

0xA

29-32

PY_RELEASE_SERIAL

0x2

Таким образом, 3.4.1a2 - это шестнадцатеричная версия 0x030401a2, а 3.10.0 - шестнадцатеричная версия 0x030a00f0.

Используйте это для числовых сравнений, например, #if PY_VERSION_HEX >= ....

Эта версия также доступна с помощью символа : c:var:Py_Version.

const unsigned long Py_Version
Part of the Стабильный ABI since version 3.11.

Номер версии среды выполнения Python, закодированный в виде единственного постоянного целого числа, в том же формате, что и макрос PY_VERSION_HEX. Здесь указана версия Python, используемая во время выполнения.

Добавлено в версии 3.11.

Все приведенные макросы определены в Include/patchlevel.h.

Вернуться на верх