擴充和嵌入 Python 直譯器

這份說明文件描述如何在 C 或 C++ 中編寫模組,並使用新模組來擴充 Python 直譯器功能。那些模組不僅可以定義新的函式,也可以定義新的物件型別及其方法 (method)。文件內容也會描述如何將 Python 直譯器嵌入另一個應用程式中,做為一種擴充語言 (extension language) 使用。最後,它會展示如何編譯及連結擴充模組,使那些模組可以動態地(在執行環境)被載入到直譯器中,前提是底層作業系統有支援這個功能。

這份說明文件假設你具備 Python 的基礎知識。關於此語言的非正式介紹,請參閱Python 教學Python 語言參考手冊給予此語言更為正式的定義。Python 標準函式庫 (Standard Library) 記錄了賦予此語言廣泛應用範圍的物件型別、函式與(內建的和以 Python 編寫的)模組。

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

推薦的第三方工具

This guide only covers the basic tools for creating extensions providedas part of this version of CPython. Somethird party tools offer both simpler and more sophisticated approaches to creatingC and C++ extensions for Python.

不使用第三方工具建立擴充

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

也參考

PEP 489 -- Multi-phase extension module initialization

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

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