Версионирование API и ABI¶API and ABI Versioning
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-битное число следующим образом:
Байты
Биты (порядок big endian)
Значение
Значение для
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– это hexversion0x030401a2, а3.10.0– это hexversion0x030a00f0.Используется для численных сравнений, например
#if PY_VERSION_HEX >= ....Эта версия также доступна через символ
Py_Version.
-
const unsigned long Py_Version¶
- Часть Stable ABI начиная с версии 3.11.
Номер версии среды выполнения Python, закодированный в одной целочисленной константе, с тем же форматом, что и макрос
PY_VERSION_HEX. Он содержит версию Python, используемую во время выполнения.Новое в версии 3.11.
Все приведенные макросы определены в файле Include/patchlevel.h.