API 和 ABI 版本管理¶
CPython 在下列宏中暴露其版本号。 请注意这对应于 编译 用版本代码,而不是 运行时 使用的版本。
请参阅 C API 的稳定性 查看跨版本的 API 和 ABI 稳定情。
-
PY_MAJOR_VERSION¶
3(3.4.1a2中的第一段)。
-
PY_MINOR_VERSION¶
4(3.4.1a2中的第二段)。
-
PY_MICRO_VERSION¶
1(3.4.1a2中第三段的数字)。
-
PY_RELEASE_LEVEL¶
a(3.4.1a2中第3段的字母)。 可能为0xA即 alpha,0xB即 beta,0xC即 release candidate 或0xF即 final。
-
PY_RELEASE_SERIAL¶
2(3.4.1a2中的末尾数字)。 零代表最终发布版。
-
PY_VERSION_HEX¶
编码为单个整数形式的 Python 版本号。
底层的版本信息可通过按以下方式将其当作 32 比特的数字处理来获取:
字节串
位数(大端字节序)
含意
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。用于进行数值比较,例如
#if PY_VERSION_HEX >= ...。该版本还可通过符号
Py_Version获取。
-
const unsigned long Py_Version¶
- 属于 稳定 ABI 自 3.11 版起.
Python 运行时版本号编码在一个整数常量中,所用格式与
PY_VERSION_HEX宏的相同。 这包含了在运行时使用的 Python 版本。Added in version 3.11.
所有提到的宏都定义在 Include/patchlevel.h。