このモジュールは初期化中に自動的にインポートされます。 自動インポートはインタプリタの-Sオプションで禁止できます。
このモジュールをインポートすることで、サイト固有のパスをモジュール検索 パスへ付け加えます。
前部と後部からなる最大で四つまでのディレクトリを作成することから始めます。前部には、sys.prefix
とsys.exec_prefix
を使用します。空の前部は省略されます。
後部には、まず空文字列を使い、次に lib/site-packages(Windows) または
lib/python2.5/site-packages、
そして lib/site-python (Unix と Macintosh)を使います。
別個の前部-後部の組み合わせのそれぞれに対して、それが存在するディレクトリを参照しているかどうかを調べ、もしそうならばsys.path
へ追加します。そして、設定ファイルを新しく追加されたパスからも検索します。
パス設定ファイルはpackage.pthという形式の名前をもつファイルで、上の4つのディレクトリのひとつにあります。その内容はsys.path
に追加される追加項目(一行に一つ)です。存在しない項目はsys.path
へは決して追加されませんが、項目が(ファイルではなく)ディレクトリを参照しているかどうかはチェックされません。項目がsys.path
へ二回以上追加されることはありません。空行と#
で始まる行は読み飛ばされます。import
で始まる行は実行されます。
例えば、sys.prefix
とsys.exec_prefix
が/usr/localに設定されていると仮定します。そのときPython 2.5 ライブラリは/usr/local/lib/python2.5にインストールされています(ここで、sys.version
の最初の三文字だけがインストールパス名を作るために使われます)。ここにはサブディレクトリ/usr/local/lib/python2.5/site-packagesがあり、その中に三つのサブディレクトリfoo、barおよびspamと二つのパス設定ファイルfoo.pthとbar.pthをもつと仮定します。foo.pthには以下のものが記載されていると想定してください:
# foo package configuration foo bar bletch
また、bar.pthには:
# bar package configuration bar
が記載されているとします。そのとき、次のディレクトリがsys.path
へこの順番んで追加されます:
/usr/local/lib/python2.3/site-packages/bar /usr/local/lib/python2.3/site-packages/foo
bletchは存在しないため省略されるということに注意してください。barディレクトリはfooディレクトリの前に来ます。なぜなら、bar.pthがアルファベット順でfoo.pthの前に来るからです。また、spamはどちらのパス設定ファイルにも記載されていないため、省略されます。
これらのパス操作の後に、sitecustomizeという名前のモジュールをインポートしようします。そのモジュールは任意のサイト固有のカスタマイゼーションを行うことができます。ImportError例外が発生してこのインポートに失敗した場合は、何も表示せずに無視されます。
いくつかの非Unixシステムでは、sys.prefix
とsys.exec_prefix
は空で、パス操作は省略されます。しかし、sitecustomizeのインポートはそのときでも試みられます。