API和ABI版本控制 PY_VERSION_HEX是以单个整数编码的Python版本号. 例如,如果PY_VERSION_HEX设置为0x030401a2,可以通过以下方式将其视为32位数来找到底层信息: 字节 位(大端序) 含义 1 1-8 PY_MAJOR_VERSION(3在3.4.1a2) 2 9-16 PY_MINOR_VERSION(4在3.4.1a2) 3 17-24 PY_MICRO_VERSION(1在3.4.1a2) 4 25-28 PY_RELEASE_LEVEL(0xA对于alpha,0xBfor beta,0xC发布候选人和0xF最后),在这种情况下它是alpha.

稳定的应用程序二进制接口 传统上,Python的C API将随每个版本而改变。大多数更改都是源兼容的,通常只需添加API,而不是加入API或删除API(虽然有些接口在首先被弃用后会被删除). 遗憾的是,API兼容性并未扩展到二进制兼容性(ABI)。原因主要是结构定义的演变,添加新字段或更改字段类型可能不会破坏API,但可能会破坏ABI。因此,扩展模块需要针对每个Python版本进行重新编译(尽管在Unix上没有使用任何受影响的接口时可能会出现异常)。此外,在Windows上,扩展模块与特定的pythonXY.dll链接,需要重新编译为更新的. 从Python 3.2开始,已声明API的一个子集