API and ABI VersioningΒΆ

PY_VERSION_HEX is the Python version number encoded in a single integer.

For example if the PY_VERSION_HEX is set to 0x030401a2, the underlying version information can be found by treating it as a 32 bit number in the following manner:

Bytes

Bits (big endian order)

Meaning

1

1-8

PY_MAJOR_VERSION (the 3 in 3.4.1a2)

2

9-16

PY_MINOR_VERSION (the 4 in 3.4.1a2)

3

17-24

PY_MICRO_VERSION (the 1 in 3.4.1a2)

4

25-28

PY_RELEASE_LEVEL (0xA for alpha, 0xB for beta, 0xC for release candidate and 0xF for final), in this case it is alpha.

29-32

PY_RELEASE_SERIAL (the 2 in 3.4.1a2, zero for final releases)

Thus 3.4.1a2 is hexversion 0x030401a2.

All the given macros are defined in Include/patchlevel.h.