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 中定义。