扩展和嵌入 Python 解释器¶
本文档介绍如何用 C 或 C++ 编写模块,从而为 Python 解释器扩展新模块。这些模块不仅可以定义新函数,还可以定义新的对象类型及其方法。本文档还介绍了如何将 Python 解释器嵌入到另一个应用程序中,作为扩展语言使用。最后,本文档演示了如何编译和链接扩展模块,以便在底层操作系统支持的情况下,可以动态地(在运行时)加载到解释器中。
本文档假定读者具备 Python 的基础知识。关于该语言的非正式介绍,请参阅 Python 教程。Python 语言参考 对该语言有更正式的定义。Python 标准库 记录了现有的对象类型、函数和模块(包括内置模块和用 Python 编写的模块),这些都为 Python 语言提供了广泛的应用范围。
关于整个 Python/C API 的详细说明,请参阅独立的 Python/C API 参考手册。
推荐的第三方工具¶
本指南仅涵盖作为 CPython 该版本一部分提供的用于创建扩展的基本工具。一些 第三方工具 为创建 Python 的 C 和 C++ 扩展提供了更简单和更复杂的方法。
不使用第三方工具创建扩展¶
本指南的这一部分涵盖了在没有第三方工具帮助的情况下创建 C 和 C++ 扩展。它主要面向这些工具的创建者,而不是作为创建你自己的 C 扩展的推荐方式。
参见
PEP 489 – 多阶段扩展模块初始化
在大型应用程序中嵌入 CPython 运行时¶
有时,我们不希望创建一个在 Python 解释器中作为主程序运行的扩展,而是希望将 CPython 运行时嵌入到一个更大的应用程序中。本节将介绍成功实现这一目标的一些细节。