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 的十六進位制版本為 0x030401a23.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 中定義。