API 和 ABI 版本管理?
CPython 在下列宏中暴露其版本號。 請注意這對應于 編譯 用版本代碼,而不是 運行時 使用的版本。
請參閱 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_VERSION0x032
9-16
PY_MINOR_VERSION0x043
17-24
PY_MICRO_VERSION0x014
25-28
PY_RELEASE_LEVEL0xA29-32
PY_RELEASE_SERIAL0x2這樣
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_HEXmacro. This contains the Python version used at run time.3.11 新版功能.
所有提到的宏都定義在 Include/patchlevel.h。