# 扩展和嵌入 Python 解释器

本文档描述了如何使用 C 或 C++ 编写模块以使用新模块来扩展 Python 解释器的功能。 这些模块不仅可以定义新的函数，还可以定义新的对象类型及其方法。 该文档还描述了如何将 Python 解释器嵌入到另一个应用程序中，以用作扩展语言。 最后，它展示了如何编译和链接扩展模块，以便它们可以动态地（在运行时）加载到解释器中，如果底层操作系统支持此特性的话。

本文档假设你具备有关 Python 的基本知识。有关该语言的非正式介绍，请参阅 Python 教程 。 Python语言参考 给出了更正式的语言定义。 Python 标准库 包含现有的对象类型、函数和模块（内置和用 Python 编写）的文档，使语言具有广泛的应用范围。

关于整个 Python/C API 的详细介绍，请参阅独立的 Python/C API 参考手册 。

注解

This guide only covers the basic tools for creating extensions provided as part of this version of CPython. Third party tools may offer simpler alternatives. Refer to the binary extensions section in the Python Packaging User Guide for more information.

- 1. 使用 C 或 C++ 扩展 Python
  - 1.1. 一个简单的例子
  - 1.2. 关于错误和异常
  - 1.3. 回到例子
  - 1.4. 模块方法表和初始化函数
  - 1.5. 编译和链接
  - 1.6. 在C中调用Python函数
  - 1.7. 提取扩展函数的参数
  - 1.8. 给扩展函数的关键字参数
  - 1.9. 构造任意值
  - 1.10. 引用计数
  - 1.11. 在C++中编写扩展
  - 1.12. 给扩展模块提供C API
- 2. Defining New Types
  - 2.1. The Basics
  - 2.2. Type Methods
- 3. 使用distutils构建C和C++扩展
  - 3.1. 发布你的扩展模块
- 4. 在Windows平台编译C和C++扩展
  - 4.1. A Cookbook Approach
  - 4.2. Differences Between Unix and Windows
  - 4.3. Using DLLs in Practice
- 5. Embedding Python in Another Application
  - 5.1. Very High Level Embedding
  - 5.2. Beyond Very High Level Embedding: An overview
  - 5.3. Pure Embedding
  - 5.4. Extending Embedded Python
  - 5.5. Embedding Python in C++
  - 5.6. Compiling and Linking under Unix-like systems