> **Источник:** https://python-all.ru/3.6/c-api/apiabiversion.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Версионирование API и ABI

`PY_VERSION_HEX` – это номер версии Python, закодированный в одном целом числе.

Например, если `PY_VERSION_HEX` установлен в `0x030401a2`, базовую информацию о версии можно найти, рассматривая его как 32-битное число следующим образом:

> | Байты | Биты (порядок big endian) | Значение |
> | --- | --- | --- |
> | `1` | `1-8` | `PY_MAJOR_VERSION` (`3` в `3.4.1a2`) |
> | `2` | `9-16` | `PY_MINOR_VERSION` (`4` в `3.4.1a2`) |
> | `3` | `17-24` | `PY_MICRO_VERSION` (`1` в `3.4.1a2`) |
> | `4` | `25-28` | `PY_RELEASE_LEVEL` (`0xA` для альфа, `0xB` для бета, `0xC` для кандидата релиза и `0xF` для финальной версии), в данном случае это альфа. |
> |  | `29-32` | `PY_RELEASE_SERIAL` (`2` в `3.4.1a2`, ноль для финальных версий) |

Таким образом, `3.4.1a2` – это hexversion `0x030401a2`.

Все приведенные макросы определены в файле [Include/patchlevel.h](https://python-all.ru/src/3.6/Include/patchlevel.h).
