Version des API et ABI

CPython révèle son numéro de version dans les macros suivantes. À noter qu'ils correspondent au code de la version compilée avec, pas nécessairement la version utilisée à l'exécution.

Voir Stabilité de l’API C pour une discussion sur la stabilité des API et ABI entre (ou en fonction) de la version.

PY_MAJOR_VERSION

Le 3 dans 3.4.1a2.)

PY_MINOR_VERSION

Le 4 dans 3.4.1a2.

PY_MICRO_VERSION

Le 1 dans 3.4.1a2.)

PY_RELEASE_LEVEL

The a in 3.4.1a2. This can be 0xA for alpha, 0xB for beta, 0xC for release candidate or 0xF for final.

PY_RELEASE_SERIAL

Le 2 dans 3.4.1a2. Nul pour des versions finales.

PY_VERSION_HEX

Le numéro de version de Python encodé en un seul entier.

L'information sur la version sous-jacente peut être trouvée en la traitant comme un nombre sous 32 bits de la manière suivante :

Octets

Bits (ordre gros-boutiste)

Signification

Valeur pour 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

Ainsi, 0x030401a2 est la version en notation hexadécimale sur un entier de 3.4.1a2 et 0x030a00f0 est la version en notation hexadécimale sur un entier de 3.10.0

Vous pouvez l'utiliser pour les comparaisons numériques, par exemple, #if PY_VERSION_HEX >= ....

This version is also available via the symbol Py_Version.

const unsigned long Py_Version
Part of the Stable ABI since version 3.11.

La version à l'exécution de Python est encodée en une constante, avec le même format que la macro PY_VERSION_HEX. Cela contient la version de Python utilisée lors de l'exécution.

Nouveau dans la version 3.11.

Toutes les macros données sont définies dans Include/patchlevel.h.