Версионирование API и ABI
CPython предоставляет номер своей версии в следующих макросах. Обратите внимание, что они соответствуют версии, с которой код собран, а не обязательно версии, используемой во время выполнения.
Обсуждение стабильности API и ABI в разных версиях см. в разделе Стабильность C API.
-
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— это hexversion0x030401a2, а3.10.0— hexversion0x030a00f0.Используйте это значение для числовых сравнений, например
#if PY_VERSION_HEX >= ....Эта версия также доступна через символ
Py_Version.
-
const unsigned long Py_Version -
Входит в стабильный ABI начиная с версии 3.11.
Номер версии среды выполнения Python, закодированный одним целым числом-константой в том же формате, что и макрос
PY_VERSION_HEX. Содержит версию Python, используемую во время выполнения.Добавлено в версии 3.11.
Все указанные макросы определены в файле Include/patchlevel.h.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/apiabiversion.html