Версионирование 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
.
Все приведенные макросы определены в Include/patchlevel.h.