扩展和嵌入 Python 解释器

本文档介绍了如何使用 C 或 C 语言编写模块,以使用新模块扩展 Python 解释器。这些模块不仅可以定义新Function,而且可以定义新对象类型及其方法。该文档还描述了如何将 Python 解释器嵌入另一个应用程序中,以用作扩展语言。最后,它显示了如何编译和链接扩展模块,以便在基础 os 支持此Function的情况下将它们动态地(在运行时)加载到解释器中。

本文档假定您具有有关 Python 的基本知识。有关该语言的非正式介绍,请参见Python 教程Python 语言参考为语言提供了更正式的定义。 Python 标准库记录了现有对象类型,函数和模块(内置和用 Python 编写),这些对象,函数和模块使该语言具有广泛的应用范围。

有关整个 Python/C API 的详细说明,请参见单独的Python/C API 参考手册

推荐的第三方工具

本指南仅涵盖此版本 CPython 所提供的用于创建扩展的基本工具。 CythoncffiSWIGNumba之类的第三方工具为创建 Python 的 C 和 C 扩展提供了更简单,更复杂的方法。

在没有第三方工具的情况下创建扩展

本指南的这一部分涵盖了在没有第三方工具帮助的情况下创建 C 和 C 扩展。它主要供那些工具的创建者使用,而不是创建自己的 C 扩展的推荐方法。

在更大的应用程序中嵌入 CPython 运行时

有时,与其创建在 Python 解释器中作为主要应用程序运行的扩展,不如将 CPython 运行时嵌入更大的应用程序中。本节涵盖成功完成此操作所涉及的一些细节。