#
1 はじめに

Python のアプリケーションプログラマ用インタフェース (Application Programmer's Interface, API) は、 Python インタプリタに対する様々なレベルでのアクセス手段を C や C++ のプログラマに提供しています。この API は通常 C++ からも全く同じように利用できるのですが、簡潔な呼び名に するために Python/C API と名づけられています。 根本的に異なる二つの目的から、 Python/C API が用いられます。 第一は、特定用途の 拡張モジュール (extention module)、 すなわち Python インタプリタを拡張する C で書かれたモジュール を記述する、という目的です。第二は、より大規模なアプリケーション 内で Python を構成要素 (component) として利用するという目的です; このテクニックは、一般的にはアプリケーションへの Python の 埋め込み (embedding) と呼びます。 拡張モジュールの作成は比較的わかりやすいプロセスで、 ``手引書 (cookbook)'' 的なアプローチでうまく実現できます。 作業をある程度まで自動化してくれるツールもいくつかあります。 一方、他のアプリケーションへの Python の埋め込みは、Python ができてから早い 時期から行われてきましたが、拡張モジュールの作成に比べるとやや難解です。

多くの API 関数は、Python の埋め込みであるか拡張であるかに関わらず 役立ちます; とはいえ、 Python を埋め込んでいるほとんどのアプリケーション は、同時に自作の拡張モジュールも提供する必要が生じることになる でしょうから、Python を実際にアプリケーションに埋め込んでみる前に 拡張モジュールの書き方に詳しくなっておくのはよい考えだと思います。