API 和 ABI 版本管理¶
CPython 透過以下巨集 (macro) 公開其版本號。請注意,對應到的是建置 (built) 所用到的版本,並不一定是執行環境 (run time) 所使用的版本。
關於跨版本 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代表 alpha 版本、0xB代表 beta 版本、0xC為發布候選版本、0xF則為最終版。
-
PY_RELEASE_SERIAL¶
在
3.4.1a2中的2。零則為最終發布版本。
-
PY_VERSION_HEX¶
被編碼為單一整數的 Python 版本號。
所代表的版本資訊可以用以下規則將其看做是一個 32 位元數字來獲得:
位元組串
位元(大端位元組序 (big endian order))
意義
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代表 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。