(拡張モジュールを書く人とは対照的に) Pythonインタープリタを組み込む人だけが心配する必要がある 1つの重要な仕事はPythonインタープリタの初期化、そしてあるいは 終了処理である。インタープリタのたいていの機能は インタープリタが初期化されてからしか使うことができない。
基本的な初期化関数は
Py_Initialize()sys.path)
Py_Initialize()は``スクリプトの引数リスト''
(sys.argv)を設定しない。もしこの変数が後で実行される
Pythonのコードで必要とされるのであれば、それは
Py_Initialize()の呼び出しに続けて
PySys_SetArgv(argc, argv)
たいていのシステムでは(詳細はやや異なるが、特にUnixとWindowsでは)、 Py_Initialize()は、 PythonライブラリがPythonインタープリタの実行形式に相対的な 決まった場所で見つかると仮定して、 標準のPythonインタープリタの実行形式の場所をできる限り推測して、 それに基いた モジュールの検索パスを計算する。 特に、pythonという名前の実行形式がシェルのコマンド検索 パス(環境変数$PATH)上で見つかったディレクトリの 親ディレクトリに相対的な lib/python1.5(1.5を現在のインタープリタのバージョン に置き換えて)という名前のディレクトリを探す。
例えば、もしPythonの実行形式が/usr/local/bin/pythonで 見つかれば、それは/usr/local/lib/python1.5にライブラリが あると仮定する(事実、この特別なパスはまた``フォールバック''の 場所で、Pythonという名前の実行形式ファイルが$PATH上に 見つからないときに使われる)。 ユーザはこの振舞いを環境変数$PYTHONHOMEを設定することで 上書きできるか、または$PYTHONPATHを設定して標準のパスの前に 追加のディレクトリを挿入することができる。
組み込みのアプリケーションは
Py_Initialize()を呼ぶ前に
Py_SetProgramName(file)
時々、Pythonを初期化しない状態にすることが望ましい。
例えば、アプリケーションが最初からやり直したい
(Py_Initialize()をもう一度呼ぶ)かもしれないし、
または単にPythonを使い終えてPythonによって割り当てられた
全てのメモリを解放したい、などだ。
これはPy_Finalize()を呼ぶことで達成できる。
関数Py_IsInitialized()