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
。這可以是 alpha 的0xA
,beta 的0xB
,候選版本的0xC
或最終版本的0xF
。
-
PY_RELEASE_SERIAL¶
3.4.1a2
中的2
。最終版本為零。
-
PY_VERSION_HEX¶
以單個整數編碼的 Python 版本號。
可以透過將它視為以下方式的 32 位數字來找到底層的版本資訊
位元組
位(大端順序)
含義
3.4.1a2
的值1
1-8
PY_MAJOR_VERSION
0x03
2
9-16
PY_MINOR_VERSION
0x04
3
17-24
PY_MICRO_VERSION
0x01
4
25-28
PY_RELEASE_LEVEL
0xA
29-32
PY_RELEASE_SERIAL
0x2
因此,
3.4.1a2
的十六進位制版本為0x030401a2
,3.10.0
的十六進位制版本為0x030a00f0
。使用此值進行數值比較,例如
#if PY_VERSION_HEX >= ...
。此版本也可以透過符號
Py_Version
獲得。
-
const unsigned long Py_Version¶
- 自 3.11 版本以來,屬於 穩定 ABI 的一部分。
以單個常量整數編碼的 Python 執行時版本號,格式與
PY_VERSION_HEX
宏相同。它包含執行時使用的 Python 版本。在 3.11 版本中新增。
所有給定的宏都在 Include/patchlevel.h 中定義。