1.1 インクルードファイル

Python/C API を使うために必要な、関数、型およびマクロの全ての定義 をインクルードするには、以下の行:

#include "Python.h"

をソースコードに記述します。 この行を記述すると、標準ヘッダ: <stdio.h>, <string.h>, <errno.h>, <limits.h>, and <stdlib.h> を (あれば) インクルードします。 システムによっては、Python の定義しているプリプロセッサ定義が 標準ヘッダに影響をおよぼす可能性があるので、Python.h は他の標準ヘッダファイルよりも前にインクルードしてください。

Python.h で定義されている、ユーザから見える名前全て (Python.h がインクルードしている標準ヘッダの名前は除きます) には、接頭文字列 "Py" または "_Py" が付きます。 "_Py" で始まる名前は Python 実装で内部使用するための名前で、拡張モジュールの作者は 使ってはなりません。構造体のメンバには予約済みの接頭文字列はありません。

重要: API のユーザは、"Py" や "_Py" で始まる名前を 定義するようなコードを絶対に書いてはなりません。 後からコードを読む人を混乱させたり、将来の Python のバージョンで同じ 名前が定義されて、ユーザの書いたコードの可搬性を危うくする可能性が あります。

ヘッダファイル群は通常 Python と共にインストールされます。 Unixでは prefix/include/pythonversion/ および exec_prefix/include/pythonversion/ に 置かれます。prefixexec_prefix は Python を ビルドする際の configure スクリプトに与えたパラメタに 対応し、versionsys.version[:3] に対応します。 Windows では、ヘッダは prefix/include に置かれます。 prefix はインストーラに指定したインストールディレクトリです。

ヘッダをインクルードするには、 各ヘッダの入ったディレクトリ (別々の ディレクトリの場合は両方) を、コンパイラがインクルードファイルを 検索するためのパスに入れます。 親ディレクトリをサーチパスに入れて、 "#include <python2.4/Python.h>" のようにしては なりません; prefix 内のプラットフォームに依存しない ヘッダは、exec_prefix からプラットフォーム依存のヘッダを インクルードしているので、このような操作を行うと複数のプラットフォーム でのビルドができなくなります。

API はすべて C 言語を使って定義していますが、ヘッダファイルは エントリポイントを extern "C" で適切に宣言しているので、 C++ ユーザは、なんの問題もなく C++から API を利用できる ことに気づくはずです。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。