扩展和嵌入 Python 解释器

本文档描述了如何使用 C 或 C++ 编写模块来使用新模块扩展 Python 解释器。 这些模块不仅可以定义新函数,还可以定义新的对象类型及其方法。 本文档还描述了如何将 Python 解释器嵌入到另一个应用程序中,用作扩展语言。 最后,它展示了如何编译和链接扩展模块,以便如果底层操作系统支持此功能,它们可以在运行时动态加载到解释器中。

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

有关整个 Python/C API 的详细描述,请参阅单独的 Python/C API 参考手册

在不使用第三方工具的情况下创建扩展

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

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

有时,与其创建在 Python 解释器内部作为主应用程序运行的扩展,不如将 CPython 运行时嵌入到更大的应用程序中。 本节介绍成功执行此操作所涉及的一些详细信息。