扩展和嵌入 Python 解释器 — Python 文档
来自菜鸟教程
Python/docs/3.9/extending/index
扩展和嵌入 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 Packaging User Guide 不仅涵盖了几个可简化二进制扩展创建的可用工具,而且还讨论了为什么首先需要创建扩展模块的各种原因。
无需第三方工具即可创建扩展
本指南的这一部分介绍如何在没有第三方工具帮助的情况下创建 C 和 C++ 扩展。 它主要面向这些工具的创建者,而不是推荐用于创建自己的 C 扩展的方法。
在更大的应用程序中嵌入 CPython 运行时
有时,与其创建在 Python 解释器中作为主应用程序运行的扩展,不如将 CPython 运行时嵌入到更大的应用程序中。 本节涵盖了成功执行此操作所涉及的一些细节。