扩展和嵌入 Python 解释器

此文档描述如何以 C/C++ 编写模块,采用新模块扩展 Python 解释器。这些模块不仅可以定义新函数,还可以定义新对象类型及其方法。文档还描述如何将 Python 解释器嵌入另一个应用程序,为用作扩展语言。最后,展示如何编译和链接扩展模块,以便将它们 (在运行时) 动态加载进解释器 (若底层操作系统支持此特征)。

此文档假定 (您了解) 有关 Python 的基本知识。对于语言的非正式介绍,见 Python 教程 . Python 语言参考 给出语言的更正式定义。 Python 标准库 文档现有对象类型、函数及模块 (内置和以 Python 编写),使语言应用程序范围更广泛。

对于整个 Python/C API 的详细描述,见单独 Python/C API 参考手册 .

此指南仅涵盖属于此版本 CPython 所提供的用于创建扩展的基本工具。第 3 方工具像 Cython、 cffi 、SWIG 及 Numba 为 Python 提供创建 C/C++ 扩展的更简单、更完备方式。

另请参阅

Python 打包用户指南:二进制扩展
The Python Packaging User Guide not only covers several available tools that simplify the creation of binary extensions, but also discusses the various reasons why creating an extension module may be desirable in the first place.

不用第三方工具创建扩展

此指南节涵盖不用第 3 方工具的援助创建 C/C++ 扩展。它旨在首要针对这些工具的创建者,而不是推荐创建自己的 C 扩展的方式。

在更大应用程序 Runtime 嵌入 CPython

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