多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 导航 - [索引](../genindex.xhtml "总目录") - [模块](../py-modindex.xhtml "Python 模块索引") | - [下一页](veryhigh.xhtml "The Very High Level Layer") | - [上一页](intro.xhtml "概述") | - ![](https://box.kancloud.cn/a721fc7ec672275e257bbbfde49a4d4e_16x16.png) - [Python](https://www.python.org/) » - zh\_CN 3.7.3 [文档](../index.xhtml) » - [Python/C API 参考手册](index.xhtml) » - $('.inline-search').show(0); | # 稳定的应用程序二进制接口 传统上,Python的C API将随每个版本而变化。大多数更改都与源代码兼容,通常只添加API,而不是更改现有API或删除API(尽管某些接口会首先弃用然后再删除)。 不幸的是,API兼容性没有扩展到二进制兼容性(ABI)。原因主要是结构定义的演变,在这里添加新字段或更改字段类型可能不会破坏API,但可能会破坏ABI。因此,每个Python版本都需要重新编译扩展模块(即使在未使用任何受影响的接口的情况下,Unix上也可能会出现异常)。此外,在Windows上,扩展模块与特定的pythonXY.dll链接,需要重新编译才能与新的pythonXY.dll链接。 从Python3.2起,已经声明了一个API的子集,以确保稳定的ABI。如果使用此API(也被称为“受限API”)的扩展模块需要定义``Py\_LIMITED\_API``。许多解释器细节将从扩展模块中隐藏; 反过来,在任何3.x版本(x>=2)上构建的模块都不需要重新编译 在某些情况下,需要添加新函数来扩展稳定版 ABI。希望使用这些新 API 的扩展模块需要将 `Py_LIMITED_API` 设置为他们想要支持的最低 Python 版本的 `PY_VERSION_HEX` 值(例如: Python 3.3 为 `0x03030000`)(参见 [API 和 ABI 版本管理](apiabiversion.xhtml#apiabiversion))。此类模块将适用于所有后续 Python版本,但无法在旧版本上加载(因为缺少符号)。 从Python 3.2开始,受限API可用的函数集记录在:pep:384。在C API文档中,不属于受限API的API元素标记为“不属于受限API”。 ### 导航 - [索引](../genindex.xhtml "总目录") - [模块](../py-modindex.xhtml "Python 模块索引") | - [下一页](veryhigh.xhtml "The Very High Level Layer") | - [上一页](intro.xhtml "概述") | - ![](https://box.kancloud.cn/a721fc7ec672275e257bbbfde49a4d4e_16x16.png) - [Python](https://www.python.org/) » - zh\_CN 3.7.3 [文档](../index.xhtml) » - [Python/C API 参考手册](index.xhtml) » - $('.inline-search').show(0); | © [版权所有](../copyright.xhtml) 2001-2019, Python Software Foundation. Python 软件基金会是一个非盈利组织。 [请捐助。](https://www.python.org/psf/donations/) 最后更新于 5月 21, 2019. [发现了问题](../bugs.xhtml)? 使用[Sphinx](http://sphinx.pocoo.org/)1.8.4 创建。