Управление версиями 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.1a21
1-8
PY_MAJOR_VERSION0x032
9-16
PY_MINOR_VERSION0x043
17-24
PY_MICRO_VERSION0x014
25-28
PY_RELEASE_LEVEL0xA29-32
PY_RELEASE_SERIAL0x2Таким образом,
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.