API と ABI のバージョニング¶
PY_VERSION_HEX は、Python のバージョン番号を単一の整数に符号化したものです。
例えば、PY_VERSION_HEX に 0x030401a2 が設定されていれば、その値を下記のように32ビットの値として扱うことで、バージョン情報を得ることができます:
bytes
ビット (ビッグエンディアンオーダ)
意味
11-8
PY_MAJOR_VERSION(3.4.1a2中の3)29-16
PY_MINOR_VERSION(3.4.1a2中の4)317-24
PY_MICRO_VERSION(3.4.1a2中の1)425-28
PY_RELEASE_LEVEL(アルファ版では0xA、ベータ版では0xB、リリース候補版では0xC、そして最終版は0xF)、この例ではアルファ版を意味しています。29-32
PY_RELEASE_SERIAL(3.4.1a2中の2、最終リリースでは 0)
従って、3.4.1a2 は hexversionで 0x030401a2 です。
これらのマクロは Include/patchlevel.h で定義されています。
