# Python インタプリタの拡張と埋め込み

このドキュメントでは、Pythonインタプリンタを拡張する新しいモジュールをで C またはC++ で書く方法を解説しています。このようなモジュールでは新しい関数を定義するだけではなく、新しい型や、そのメソッドを定義することができます。ドキュメントでは他のアプリケーションでPythonを拡張言語として使用するために、Pythonインタプリタをアプリケーションに埋め込む方法についても解説します。最後に、下層のオペレーティングシステムが動的(実行時)ロードをサポートしていれば、拡張モジュールが動的にライブラリにロードされるように、モジュールをコンパイルしリンクする方法について解説します。

このドキュメントでは、読者は Python について基礎的な知識を持ち合わせているものと仮定しています。形式ばらない Python 言語の入門には、 Python チュートリアル を読んでください。 Python 言語リファレンス を読めば、 Python 言語についてより形式的な定義を得られます。また、 Python 標準ライブラリ では、Python に広い適用範囲をもたらしている既存のオブジェクト型、関数、および (組み込み、および Python で書かれたものの両方の) モジュールについて解説しています。

Python/C API 全体の詳しい説明は、別のドキュメントである、 Python/C API リファレンスマニュアル を参照してください。

注釈

このガイドでは、このバージョンの CPython が拡張を作成するために提供している基本的なツールの一部しかカバーしていません。サードパーティのツールはより簡単な選択肢を提供しているでしょう。より詳細な情報については Python Package User Guide の binary extensions section を参照してください。

- 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. 新しい型を定義する
  - 2.1. 基本的なこと
  - 2.2. タイプメソッド
- 3. distutils による C および C++ 拡張モジュールのビルド
  - 3.1. 拡張モジュールの配布
- 4. Windows 上での C および C++ 拡張モジュールのビルド
  - 4.1. 型どおりのアプローチ
  - 4.2. Unix と Windows の相違点
  - 4.3. DLL 使用の実際
- 5. 他のアプリケーションへの Python の埋め込み
  - 5.1. 高水準の埋め込み
  - 5.2. 超高水準の埋め込みから踏み出す: 概要
  - 5.3. 純粋な埋め込み
  - 5.4. 埋め込まれた Python の拡張
  - 5.5. C++による Python の埋め込み
  - 5.6. Unix 系システムにおけるコンパイルとリンク