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/ に
置かれます。prefix と exec_prefix は Python を
ビルドする際の configure スクリプトに与えたパラメタに
対応し、version は sys.version[:3]
に対応します。
Windows では、ヘッダは prefix/include に置かれます。
prefix はインストーラに指定したインストールディレクトリです。
ヘッダをインクルードするには、 各ヘッダの入ったディレクトリ (別々の ディレクトリの場合は両方) を、コンパイラがインクルードファイルを 検索するためのパスに入れます。 親ディレクトリをサーチパスに入れて、 "#include <python2.4/Python.h>" のようにしては なりません; prefix 内のプラットフォームに依存しない ヘッダは、exec_prefix からプラットフォーム依存のヘッダを インクルードしているので、このような操作を行うと複数のプラットフォーム でのビルドができなくなります。
API はすべて C 言語を使って定義していますが、ヘッダファイルは
エントリポイントを extern "C"
で適切に宣言しているので、
C++ ユーザは、なんの問題もなく C++から API を利用できる
ことに気づくはずです。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。