API と ABI のバージョニング

PY_VERSION_HEX は、Python のバージョン番号を単一の整数に符号化したものです。

例えば、PY_VERSION_HEX0x030401a2 が設定されていれば、その値を下記のように32ビットの値として扱うことで、バージョン情報を得ることができます:

bytes

ビット (ビッグエンディアンオーダ)

意味

1 1-8

PY_MAJOR_VERSION (3.4.1a2 中の 3)

2 9-16

PY_MINOR_VERSION (3.4.1a2 中の 4)

3 17-24

PY_MICRO_VERSION (3.4.1a2 中の 1)

4 25-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 で定義されています。