擴充套件和嵌入 Python 直譯器¶
本文件介紹如何用 C 或 C++ 編寫模組,從而為 Python 直譯器擴充套件新模組。這些模組不僅可以定義新函式,還可以定義新的物件型別及其方法。本文件還介紹瞭如何將 Python 直譯器嵌入到另一個應用程式中,作為擴充套件語言使用。最後,本文件演示瞭如何編譯和連結擴充套件模組,以便在底層作業系統支援的情況下,可以動態地(在執行時)載入到直譯器中。
本文件假定讀者具備 Python 的基礎知識。關於該語言的非正式介紹,請參閱 Python 教程。Python 語言參考 對該語言有更正式的定義。Python 標準庫 記錄了現有的物件型別、函式和模組(包括內建模組和用 Python 編寫的模組),這些都為 Python 語言提供了廣泛的應用範圍。
關於整個 Python/C API 的詳細說明,請參閱獨立的 Python/C API 參考手冊。
推薦的第三方工具¶
本指南僅涵蓋作為 CPython 該版本一部分提供的用於建立擴充套件的基本工具。一些 第三方工具 為建立 Python 的 C 和 C++ 擴充套件提供了更簡單和更復雜的方法。
不使用第三方工具建立擴充套件¶
本指南的這一部分涵蓋了在沒有第三方工具幫助的情況下建立 C 和 C++ 擴充套件。它主要面向這些工具的建立者,而不是作為建立你自己的 C 擴充套件的推薦方式。
參見
PEP 489 – 多階段擴充套件模組初始化
在大型應用程式中嵌入 CPython 執行時¶
有時,我們不希望建立一個在 Python 直譯器中作為主程式執行的擴充套件,而是希望將 CPython 執行時嵌入到一個更大的應用程式中。本節將介紹成功實現這一目標的一些細節。