28.15。 ユーザー —ユーザー固有の構成フック
バージョン2.6以降非推奨: user モジュールはPython3で削除されました。
ポリシーとして、PythonはPythonプログラムの起動時にユーザー指定のコードを実行しません。 (対話型セッションのみが、 PYTHONSTARTUP 環境変数で指定されたスクリプトが存在する場合はそれを実行します)。
ただし、一部のプログラムまたはサイトでは、ユーザーが標準のカスタマイズファイルを使用できるようにすると便利な場合があります。このファイルは、プログラムが要求したときに実行されます。 このモジュールはそのようなメカニズムを実装します。 メカニズムを使用したいプログラムは、ステートメントを実行する必要があります
import user
user モジュールは、ユーザーのホームディレクトリでファイル.pythonrc.py
を検索し、開くことができる場合は、それ自体( execfile()を使用)で実行します(モジュールユーザーの)グローバル名前空間。 このフェーズでのエラーは検出されません。 必要に応じて、 user モジュールをインポートするプログラム次第です。 ホームディレクトリは、 HOME
環境変数によって名前が付けられていると想定されています。 これが設定されていない場合は、現在のディレクトリが使用されます。
ユーザーの.pythonrc.py
は、Pythonのバージョンに応じて異なることをしたい場合、sys.version
をテストできると考えられます。
ユーザーへの警告:.pythonrc.py
ファイルに配置する内容は非常に慎重に設定してください。 どのプログラムがそれを使用するかわからないので、標準のモジュールまたは関数の動作を変更することは一般的に良い考えではありません。
このメカニズムを使用したいプログラマーへの提案:ユーザーがパッケージのオプションを指定できるようにする簡単な方法は、モジュールでテストする.pythonrc.py
ファイルに変数を定義させることです。 たとえば、詳細レベルを持つモジュールspam
は、次のように変数user.spam_verbose
を検索できます。
import user
verbose = bool(getattr(user, "spam_verbose", 0))
( getattr()の3つの引数形式は、ユーザーが.pythonrc.py
ファイルでspam_verbose
を定義していない場合に使用されます。)
広範なカスタマイズが必要なプログラムは、プログラム固有のカスタマイズファイルを読むことをお勧めします。
セキュリティまたはプライバシーの懸念があるプログラムは、このモジュールをインポートしないでください。 ユーザーは、.pythonrc.py
ファイルに任意のコードを配置することにより、プログラムに簡単に侵入できます。
一般的な使用のためのモジュールは、このモジュールをインポートするべきではありません。 インポートプログラムの動作に支障をきたす場合があります。