扩展和嵌入 Python 解释器¶
本文档介绍了如何用 C 或 C++ 编写模块来扩展 Python 解释器,添加新的模块。这些模块不仅可以定义新的函数,还可以定义新的对象类型及其方法。本文档还介绍了如何将 Python 解释器嵌入到另一个应用程序中,用作扩展语言。最后,它展示了如何编译和链接扩展模块,以便在底层操作系统支持此功能的情况下,可以动态地(在运行时)将它们加载到解释器中。
本文档假设您对 Python 有基本了解。有关该语言的非正式介绍,请参阅 Python 教程。 Python 语言参考 对该语言进行了更正式的定义。 Python 标准库 文档介绍了现有的对象类型、函数和模块(内置的和用 Python 编写的),这些模块赋予了该语言广泛的应用范围。
有关整个 Python/C API 的详细说明,请参阅单独的 Python/C API 参考手册。
推荐的第三方工具¶
本指南仅涵盖作为 CPython 此版本的一部分提供的用于创建扩展的基本工具。第三方工具,如 Cython、cffi、SWIG 和 Numba 提供了更简单和更复杂的方法来为 Python 创建 C 和 C++ 扩展。
另请参阅
- Python 打包用户指南:二进制扩展
Python 打包用户指南不仅涵盖了简化二进制扩展创建的几种可用工具,还讨论了首先创建扩展模块的各种原因。
在没有第三方工具的情况下创建扩展¶
本指南的这一部分涵盖了在没有第三方工具帮助的情况下创建 C 和 C++ 扩展。它主要面向这些工具的创建者,而不是推荐的创建自己的 C 扩展的方法。
将 CPython 运行时嵌入到更大的应用程序中¶
有时,与其创建在 Python 解释器中作为主应用程序运行的扩展,不如将 CPython 运行时嵌入到更大的应用程序中。本节介绍了成功执行此操作的一些细节。