28.15. "user" --- ユーザー設定のフック
**************************************

バージョン 2.6 で非推奨: "user" モジュールは Python 3 で削除されました
。

ポリシーとして、Python は起動時にユーザー毎の設定を行うコードを実行す
ることはしません (ただし対話型セッションで環境変数 "PYTHONSTARTUP" が
設定されていた場合にはそのスクリプトを実行します)。

しかしながら、プログラムやサイトによっては、プログラムが要求した時にユ
ーザーごとの標準設定ファイルを実行できると便利なこともあります。このモ
ジュールはそのような機構を実装しています。この機構を利用したいプログラ
ムでは、以下の文を実行してください:

   import user

"user" モジュールはユーザーのホームディレクトリの ".pythonrc.py" ファ
イルを探し、オープンできるなら ("user" モジュールの) グローバル名前空
間で実行します("execfile()" を利用します)。この段階で発生したエラーは
catch されません。 "user" モジュールを import したプログラムに伝播しま
す。ホームディレクトリは環境変数 "HOME" が仮定されていますが、もし設定
されていなければカレントディレクトリが使われます。

ユーザーの ".pythonrc.py" では Python のバージョンに従って異なる動作を
行うために "sys.version" のテストを行うことが考えられます。

ユーザーへの警告: ".pythonrc.py" ファイルに書く内容には慎重になってく
ださい。どのプログラムが利用しているかわからない状況で、標準のモジュー
ルや関数の振る舞いを変えることはおすすめできません。

この機構を使おうとするプログラマへの提案: あなたのパッケージ向けのオプ
ションをユーザーが設定できるようにするシンプルな方法は、
".pythonrc.py" ファイルで変数を定義して、あなたのプログラムでテストす
る方法です。たとえば、 "spam" モジュールでメッセージ出力のレベルを変え
る "user.spam_verbose" 変数を参照するには以下のようにします:

   import user

   verbose = bool(getattr(user, "spam_verbose", 0))

(ユーザが "spam_verbose" をファイル ".pythonrc.py" 内で定義してないこ
とに備えて "getattr()" の3 引数形式を使っています。)

大掛かりな設定の必要があるプログラムでは、プログラム固有の設定ファイル
を読む方がずっと良いです。

セキュリティやプライバシーに配慮するプログラムではこのモジュールを
import  *しないで* ください。このモジュールを使うと、ユーザーは
".pythonrc.py" に任意のコードを書くことで簡単にプログラムに侵入するこ
とができてしまいます。

汎用のモジュールではこのモジュールを import  *しないで* ください。
import したプログラムの動作にも干渉してしまいます。

参考:

  "site" モジュール
     サイト毎のカスタマイズを行う機構
