包含文件

使用 Python/C API 所需要的全部函数、类型和宏定义可通过下面这行语句包含到你的代码之中:

  1. #define PY_SSIZE_T_CLEAN
  2. #include <Python.h>

这意味着包含以下标准头文件:<stdio.h><string.h><errno.h><limits.h><assert.h><stdlib.h>(如果可用)。

注解

由于 Python 可能会定义一些能在某些系统上影响标准头文件的预处理器定义,因此在包含任何标准头文件之前,你 必须 先包含 Python.h

It is recommended to always define PY_SSIZE_T_CLEAN before including Python.h. See 语句解释及变量编译 for a description of this macro.

Python.h 所定义的全部用户可见名称(由包含的标准头文件所定义的除外)都带有前缀 Py 或者 _Py。以 _Py 打头的名称是供 Python 实现内部使用的,不应被扩展编写者使用。结构成员名称没有保留前缀。

注解

User code should never define names that begin with Py or _Py. This confuses the reader, and jeopardizes the portability of the user code to future Python versions, which may define additional names beginning with one of these prefixes.

头文件通常会与 Python 一起安装。在 Unix 上,它们位于以下目录:*prefix*/include/pythonversion/*exec_prefix*/include/pythonversion/,其中 prefixexec_prefix 是由向 Python 的 configure 脚本传入的对应形参所定义,而 version 则为 '%d.%d' % sys.version_info[:2]。在 Windows 上,头文件安装于 *prefix*/include,其中 prefix 是向安装程序指定的安装目录。

要包含头文件,请将两个目录(如果不同)都放到你所用编译器的包含搜索路径中。请 不要 将父目录放入搜索路径然后使用 #include <pythonX.Y/Python.h>;这将使得多平台编译不可用,因为 prefix 下平台无关的头文件需要包含来自 exec_prefix 下特定平台的头文件。

C++ users should note that although the API is defined entirely using C, the header files properly declare the entry points to be extern "C". As a result, there is no need to do anything special to use the API from C++.