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