介绍

Python 应用程序编程接口为 C/C++ 程序员提供各种级别的 Python 解释器访问。 API 同样可用于 C++,但为了简洁,一般称为 Python/C API。使用 Python/C API 有 2 个根本不同原因。第 1 个原因是要编写 扩展模块 为特定目的;这会扩展 Python 解释器的 C 模块。这可能是最常见用法。第 2 个原因是在更大应用程序中将 Python 用作组件;这种技术一般称为 embedding Python 在应用程序。

编写扩展模块是相对好理解的过程,若 "食谱" 方法工作得很好。有一些工具在某种程度上可以自动化过程。尽管人们将 Python 嵌入其它应用程序从早期起就已存在,嵌入 Python 的过程相比编写扩展不太直接。

许多 API 函数很有用,独立于是嵌入还是扩展 Python ;再者,大多数嵌入 Python 的应用程序还需要提供自定义扩展,所以熟悉编写扩展可能是个好主意,在试图将 Python 嵌入到真正的应用程序之前。

编码标准

若正编写要包括在 CPython 中的 C 代码, must 遵循的指导方针和定义的标准在 PEP 7 。这些指导方针适用于您正贡献的任何版本 Python。您自己的第 3 方扩展模块不必遵循这些约定,除非最终期望将它们贡献给 Python。

包括文件

使用 Python/C API 所需的所有函数、类型和宏定义,都通过将以下行包括在代码中:

#define PY_SSIZE_T_CLEAN
#include <Python.h>