このモジュールは、初期化の処理中に自動的にインポートされます。
パイソンの初期のバージョン(1.5a3まで)では、 サイト特有のモジュールを使用する必要があるスクリプトやモジュールは、 コードの先頭近くのどこかに、"import site"と書く必要がありました。これはもはや必要ありません。
これは前部と後部から4つまでのディレクトリを構築することから始めます。
前部に対してはsys.prefixとsys.exec_prefixを使用します。
空の前部はスキップされます。
後部に対しては、空文字列(MacintoshまたはWindows上では)を使うか、
先ず"lib/pythonversion/site-packages"を使い次に
"lib/site-python"(Unix上では)を使います。
異なる前部・後部の組み合わせのそれぞれに対して、存在するディレクトリを
参照しているかどうかを調べて存在すればsys.pathに追加し、
パスコンフィグレーションファイルも調べます。
パスコンフィグレーションファイルは、"package.pth"という名称形式
のファイルで、その中にsys.pathに追加する項目(1行に1項目)があります。
存在しない項目は決してsys.pathには追加されません。しかし、
そのアイテムが(ファイルではなく)ディレクトリを参照しているかどうかのチェック
はなされません。一度追加された項目はそれ以上sys.pathに追加されること
はありません。空行や#から始まる行は、スキップされます。
例えば、sys.prefixとsys.exec_prefixが、"/usr/local"にセットされていると仮定します。パイソン1.5.1のライブラリは、"/usr/local/lib/python1.5"にインストールされます(sys.versionの最初の3文字がパス名に使われます)。ここに3つのサブディレクトリ("foo"、"bar"、"spam")と、2つのパスコンフィグレーションファイル("foo.pth"、"bar.pth")を持つサブディレクトリ"/usr/local/lib/python1.5/site-packages"があると仮定します。 "foo.pth"が以下のように定義されていると仮定します。
# foo パッケージコンフィグレーション foo bar bletch
そして、"bar.pth"が以下のように定義されていると仮定します。
# bar パッケージコンフィグレーション bar
すると、次のようなディレクトリがこの順番でsys.pathに追加されます。
/usr/local/lib/python1.5/site-packages/bar /usr/local/lib/python1.5/site-packages/foo
"bletch"は存在しないので、省略されます。"bar.pth"は"foo.pth"よりアルファベット順で前にくるので、"bar"ディレクトリは"foo"ディレクトリより優先されます。そして"spam"は、どのパスコンフィグレ−ションファイルにも定義されていないので省略されます。
これらのパス操作の後で、任意のサイト特有のカスタマイズを行う、sitecustomize モジュールのインポートが行われます。もしImportError例外が発生してインポートできなかった場合は無視されます。
Unixでないシステムでは、sys.prefixとsys.exec_prefixは空であることに注意して下さい。パス操作はスキップされます。しかし、sitecustomize モジュールのインポートは試みられます。
guido@python.org