API 和 ABI 版本管理?
CPython 在下列宏中暴露其版本號。 請注意這對應(yīng)于 編譯 用版本代碼,而不是 運行時 使用的版本。
請參閱 C API Stability 查看跨版本的 API 和 ABI 穩(wěn)定情。
-
PY_MAJOR_VERSION?
3
(3.4.1a2
中的第一段)。
-
PY_MINOR_VERSION?
4
(3.4.1a2
中的第二段)。
-
PY_MICRO_VERSION?
1
(3.4.1a2
中第三段的數(shù)字)。
-
PY_RELEASE_LEVEL?
a
(3.4.1a2
中第3段的字母)。 可能為0xA
即 alpha,0xB
即 beta,0xC
即 release candidate 或0xF
即 final。
-
PY_RELEASE_SERIAL?
2
(3.4.1a2
中的末尾數(shù)字)。 零代表最終發(fā)布版。
-
PY_VERSION_HEX?
編碼為單個整數(shù)形式的 Python 版本號。
底層的版本信息可通過按以下方式將其當作 32 比特的數(shù)字處理來獲取:
字節(jié)串
位數(shù)(大端字節(jié)序)
含意
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
。This version is also available via the symbol
Py_Version
.
-
const unsigned long Py_Version?
- Part of the Stable ABI since version 3.11.
The Python runtime version number encoded in a single constant integer, with the same format as the
PY_VERSION_HEX
macro. This contains the Python version used at run time.3.11 新版功能.
所有提到的宏都定義在 Include/patchlevel.h。