API と ABI のバージョニング¶
CPython は以下のマクロでバージョン番号を公開しています。これらはコードが ビルドされた バージョンに対応しており、必ずしも 実行時 に使われるバージョンではないことに注意してください。
バージョン間の API と ABI の安定性については C API の安定性 を参照してください。
-
PY_MAJOR_VERSION¶ 3.4.1a2の3。
-
PY_MINOR_VERSION¶ 3.4.1a2の4。
-
PY_MICRO_VERSION¶ 3.4.1a2の1。
-
PY_RELEASE_LEVEL¶ 3.4.1a2のa。アルファでは0xA、ベータでは0xB、リリース候補では0xC、最終版では0xFとなります。
-
PY_RELEASE_SERIAL¶ 3.4.1a2の2。最終リリースでは 0 になります。
-
PY_VERSION_HEX¶ Python のバージョン番号を単一の整数に符号化したものです。
下記のように32ビットの値として扱うことで、バージョン情報を得ることができます:
bytes
ビット (ビッグエンディアンオーダ)
意味
3.4.1a2の値1
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は16進数で0x030401a2であり、3.10.0は16進数で0x030a00f0です。
これらのマクロは Include/patchlevel.h で定義されています。