This document is for an old version of Python that is no longer supported. You should upgrade, and read the Python documentation for the current stable release.

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.

Previous topic

Supporting Cyclic Garbage Collection

Next topic

Distributing Python Modules

This Page

«