擴充和嵌入 Python 直譯器
************************

This document describes how to write modules in C or C++ to extend the
Python interpreter with new modules.  Those modules can do what Python
code does -- define functions, object types and methods -- but also
interact with native libraries or achieve better performance by
avoiding the overhead of an interpreter.  The document also describes
how to embed the Python interpreter in another application, for use as
an extension language.  Finally, it shows how to compile and link
extension modules so that they can be loaded dynamically (at run time)
into the interpreter, if the underlying operating system supports this
feature.

This document assumes basic knowledge about C and Python.  For an
informal introduction to Python, see Python 教學.  Python 語言參考手冊
gives a more formal definition of the language.  Python 標準函式庫
(Standard Library) documents the existing object types, functions and
modules (both built-in and written in Python) that give the language
its wide application range.

關於完整的 Python/C API 詳細介紹，請參閱另外一份 Python/C API 參考手冊
。

To support extensions, Python's C API (Application Programmers
Interface) defines a set of functions, macros and variables that
provide access to most aspects of the Python run-time system.  The
Python API is incorporated in a C source file by including the header
""Python.h"".

備註:

  The C extension interface is specific to CPython, and extension
  modules do not work on other Python implementations.  In many cases,
  it is possible to avoid writing C extensions and preserve
  portability to other implementations. For example, if your use case
  is calling C library functions or system calls, you should consider
  using the "ctypes" module or the cffi library rather than writing
  custom C code. These modules let you write Python code to interface
  with C code and are more portable between implementations of Python
  than writing and compiling a C extension module.


推薦的第三方工具
================

This document only covers the basic tools for creating extensions
provided as part of this version of CPython. Some third party tools
offer both simpler and more sophisticated approaches to creating C and
C++ extensions for Python.

While this document is aimed at extension authors, it should also be
helpful to the authors of such tools. For example, the tutorial module
can serve as a simple test case for a build tool or sample expected
output of a code generator.


C API Tutorial
==============

This tutorial describes how to write a simple module in C or C++,
using the Python C API -- that is, using the basic tools provided as
part of this version of CPython.

1. Your first C API extension module


Guides for intermediate topics
==============================

本指南中的這一節將說明，在沒有第三方工具的協助下，如何建立 C 和 C ++
擴充。它主要是寫給使用那些工具的創作者們，而不是讓你建立自己的 C 擴充
的推薦方法。

* Using the C API: Assorted topics

* 擴充型別定義教學

* Defining Extension Types: Assorted Topics

* 建立 C 與 C++ 擴充套件

* 建置 Windows 上的 C 和 C++ 擴充


在更大的應用程式中嵌入 CPython 運行環境 (runtime)
=================================================

有時候，相較於建立一個擴充，使其在 Python 直譯器中可作為主應用程式運行
，還不如將 CPython 運行環境嵌入至一個更大的應用程式中更可取。本節將涵
蓋一些要成功完成此任務所涉及的細節。

* 在其它 App 內嵌入 Python
