ポリシーとして、パイソンは、プログラムの起動時に、ユーザーが定義したコードを実行しません。(対話型セッションだけは、環境変数$PYTHONSTARTUPが定義されていれば、その中に定義されているスクリプトを実行します。)
しかし、プログラムやサイトによっては、ユーザーがカスタマイズの為のファイルを持ち、プログラムがリクエストしたときに実行させることは、便利かもしれません。このモジュールは、そのようなメカニズムを実装しています。このメカニズムを利用したいプログラムは、以下の文を実行する必要があります。
import user
userモジュールは、ユーザーのホームディレクトリ内に、".pythonrc.py"ファイルを探します。そしてそのファイルがオープンできれば、その(すなわち、userモジュールの)グローバルな名前空間において、(execfile() 関数を使って)実行します。 このフェーズの間は、エラーを取得できません。これは、userモジュールをインポートしようとしたプログラムの責任です。ホームディレクトリは、環境変数$HOMEによって決められます。もし定義されていなければ、カレントディレクトリとなります。
パイソンのバージョンによって異なる処理をさせたい場合は、ユーザーの".pythonrc.py"は、考えられる限りのsys.versionのテストをして下さい。
警告: ".pythonrc.py"ファイルに書き込む時は、とても慎重に行って下さい。 どんなプログラムがこのファイルを使うか分からないので、標準モジュールや標準関数の処理を変えることは、あまり良い考えとは言えません。
このメカニズムを使いたいプログラマーへの提案: ユーザーに、あなたのパッケージの為のオプションを明示させる簡単な方法は、 あなたのモジュール内でテストした".pythonrc.py"ファイルの中に、ユーザーに変数を定義させることです。 例えば、verbosity levelを持つspamモジュールは、変数user.spam_verboseを求めることができます。以下の通りです。
import user try: verbose = user.spam_verbose # user's verbosity preference except AttributeError: verbose = 0 # default verbosity
広くカスタマイズする必要があるプログラムは、program-specificカスタマイズファイルを読み込む方がベターです。
セキュリティやプライバシーに関するプログラムは、このモジュールをインポートすべきではありません。ユーザーは、".pythonrc.py"ファイルにあるコードを書くことで、簡単にプログラム内に入り込むことができます。
一般的なモジュールは、このモジュールをインポートすべきではありません。プログラムをインポートする処理を邪魔するかもしれないからです。
参照:
siteモジュール (サイトを広くカスタマイズするメカニズム)
guido@python.org