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 系システムにおけるコンパイルとリンク
