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
。这可以是0xA
用于 alpha,0xB
用于 beta,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 中定义。