API 和 ABI 版本管理

CPython 透過以下巨集 (macro) 公開其版本號。請注意,對應到的是建置 (built) 所用到的版本,並不一定是執行環境 (run time) 所使用的版本。

關於跨版本 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 中的 a0xA 代表 alpha 版本、0xB 代表 beta 版本、0xC 為發布候選版本、0xF 則為最終版。

PY_RELEASE_SERIAL

3.4.1a2 中的 2。零則為最終發布版本。

PY_VERSION_HEX

被編碼為單一整數的 Python 版本號。

所代表的版本資訊可以用以下規則將其看做是一個 32 位元數字來獲得:

位元組串

位元(大端位元組序 (big endian order))

意義

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 代表 hexversion 0x030401a23.10.0 代表 hexversion 0x030a00f0

使用它進行數值比較,例如 #if PY_VERSION_HEX >= ...

该版本还可通过符号 Py_Version 获取。

const unsigned long Py_Version
属于 稳定 ABI 自 3.11 版开始.

編碼為單個常數整數的 Python 執行環境版本號,格式與 PY_VERSION_HEX 巨集相同。這包含在執行環境使用的 Python 版本。

在 3.11 版新加入.

所有提到的巨集都定義在 Include/patchlevel.h