6

私が書いているpythonプログラムでは、3つの異なる方法で構成する機会を与えたいと思います。環境変数、設定ファイル、およびコマンドライン引数。設定値を読む順序は?

論理的には、コマンドライン引数は常に最高の優先順位を持つべきだと思います。私は環境変数が設定ファイルよりも優先されるべきかどうか疑問に思っていますか?また、設定ファイルがシステム全体であるか、ユーザー固有であるか、コマンドラインで引数として指定されるかは重要ですか?

(私のプラットフォームは、UNIX/Linuxのであることに注意してください)

答えて

15

その後、環境VAR、ローカル設定ファイルのグローバル設定ファイルを見つけていない場合、私は知っている標準は、コマンドラインパラメータのための第一印象です。

パッケージがどこかにインストールされているとき。デフォルトの設定ファイルがあります。これはローカルの設定ファイルで変更することができます。 environパラメータでオーバーライドすることができ、コマンドラインparamが最も高い優先順位を持ちます。

設定ファイルがコマンドラインで宣言されている場合、その内容は環境パラメータまたはその他の設定ファイルよりも優先されます。しかし、コマンドラインパラメータが優先されます。 しかし、検索パスはまだ存在することに注意してください。パッケージがvarを探している場合、それは探しています。

Command line. 
Config file thats name is declared on the command line. 
Environment vars 
Local config file (if exists) 
Global config file (if exists) 

は、私は多くのコマンドラインコンパイラとあなたの特定の順序が意味常に公式かである場合

+0

は、私にはわからない同様の方法でBoostライブラリの設定朴作品だと思いますが、それは私にはかなりいいですね。 )+1 – Mecki

+0

私たちはいつもたくさんのお金を費やしてIEEE標準を作ることができました。 Na。少しの報酬のために多大な時間と労力。マイクロソフトとGoogleと他の通常の容疑者は、Mecki/Kingのガイドラインに準拠できない理由は何千もあります。 – kingchris

+1

"コマンドライン上の設定ファイル"の位置には、引数があります。私の経験から、通常はストックファイルを置き換えます。 –

関連する問題