Керування версіями 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.

Use this for numeric comparisons, e.g. #if PY_VERSION_HEX >= ....

This version is also available via the symbol Py_Version.

const unsigned long Py_Version
Part of the Stable ABI since version 3.11.

The Python runtime version number encoded in a single constant integer, with the same format as the PY_VERSION_HEX macro. This contains the Python version used at run time.

Added in version 3.11.

Усі вказані макроси визначено в Include/patchlevel.h.