27.14. site — サイト固有の設定フック — Python 2.7ja1 documentation

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python 標準ライブラリ »
- 27. Python ランタイムサービス »

# 27.14. `site` — サイト固有の設定フック

このモジュールは初期化中に自動的にインポートされます。 自動インポートはインタプリタの -S オプションで禁止できます。

このモジュールをインポートすることで、サイト固有のパスをモジュール検索パスへ付け加えます。

サイト固有のパスは、前部と後部から構築される最大で四つまでのディレクトリから始めます。前部には、 `sys.prefix` と `sys.exec_prefix` を使用します。空の前部は省略されます。後部には、まず空文字列を使い、次に `lib/site-packages` (Windows) または `lib/python|version|/site-packages`, そして `lib/site-python` (Unix と Macintosh)を使います。前部-後部の組み合わせのそれぞれに対して、それが存在するディレクトリを参照しているかどうかを調べ、もしそうならば `sys.path` へ追加します。そして、パス設定ファイルを新しく追加されたパスからも検索します。

パス設定ファイルは `package.pth` という形式の名前をもつファイルで、上の4つのディレクトリのひとつにあります。その内容は `sys.path` に追加される追加項目(一行に一つ)です。存在しない項目は `sys.path` へは決して追加されませんが、項目が(ファイルではなく) ディレクトリを参照しているかどうかはチェックされません。項目が `sys.path` へ二回以上追加されることはありません。空行と `#` で始まる行は読み飛ばされます。 `import` で始まる(そしてその後ろにスペースかタブが続く)行は実行されます。

バージョン 2.6 で変更: import キーワードの後ろにスペースかタブが必要になりました。

例えば、 `sys.prefix` と `sys.exec_prefix` が `/usr/local` に設定されていると仮定します。そのときPython X.Y ライブラリは `/usr/local/lib/pythonX.Y` にインストールされています(ここで、 `sys.version` の最初の三文字だけがインストールパス名を作るために使われます)。ここにはサブディレクトリ `/usr/local/lib/pythonX.Y|/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/pythonX.Y/site-packages/bar
    /usr/local/lib/pythonX.Y/site-packages/foo

`bletch` は存在しないため省略されるということに注意してください。 `bar` ディレクトリは `foo` ディレクトリの前に来ます。なぜなら、 `bar.pth` がアルファベット順で `foo.pth` の前に来るからです。また、 `spam` はどちらのパス設定ファイルにも記載されていないため、省略されます。

これらのパス操作の後に、 `sitecustomize` という名前のモジュールをインポートしようします。そのモジュールは任意のサイト固有のカスタマイゼーションを行うことができます。 `ImportError` 例外が発生してこのインポートに失敗した場合は、何も表示せずに無視されます。

いくつかの非Unixシステムでは、 `sys.prefix` と `sys.exec_prefix` は空で、パス操作は省略されます。しかし、 `sitecustomize` のインポートはそのときでも試みられます。

`site.` `PREFIXES`

  siteパッケージディレクトリのprefixのリスト

  バージョン 2.6 で追加.

`site.` `ENABLE_USER_SITE`

  ユーザーサイトディレクトリのステータスを示すフラグ。 Trueの場合、ユーザーサイトディレクトリが有効で sys.path に追加されていることを意味しています。 None の場合、セキュリティ上の理由でユーザーサイトディレクトリが無効になっていることを示しています。

  バージョン 2.6 で追加.

`site.` `USER_SITE`

  現在のPythonバージョン用のユーザーサイトディレクトリのパス。もしくは None.

  バージョン 2.6 で追加.

`site.` `USER_BASE`

  ユーザーサイトディレクトリのベースディレクトリ

  バージョン 2.6 で追加.

`PYTHONNOUSERSITE`

  バージョン 2.6 で追加.

`PYTHONUSERBASE`

  バージョン 2.6 で追加.

`site.` `addsitedir`(sitedir, known_paths=None)

  ディレクトリを sys.path に追加して、その中の pth ファイルも処理する。

`site.` `getsitepackages`()

  全てのグローバルの site-packages (site-python が含まれる場合もある) ディレクトリを含むリストを返します。

  バージョン 2.7 で追加.

`site.` `getuserbase`()

  “ユーザーベース” ディレクトリのパスを返します。

  “ユーザーベース” ディレクトリをデータを保存するために使うことができます。グローバル変数 `USER_BASE` がまだ初期化されていない場合、その初期化を行います。

  バージョン 2.7 で追加.

`site.` `getusersitepackages`()

  ユーザー専用の site-packages ディレクトリパスを返します。

  グローバル変数 `USER_SITE` が初期化されていない場合、初期化します。

  バージョン 2.7 で追加.

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python 標準ライブラリ »
- 27. Python ランタイムサービス »