17

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

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

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

4

2 に答える 2

31

私が知っている標準は、最初にコマンドラインパラメーターを探し、環境変数が見つからない場合は、次にローカル構成ファイル、次にグローバル構成ファイルを探すことです。

したがって、パッケージがどこかにインストールされるとき。デフォルトの構成ファイルがあります。これは、ローカル構成ファイルで変更できます。環境パラメーターでオーバーライドでき、コマンドラインパラメーターが最も優先されます。

構成ファイルがコマンド ラインで宣言されている場合、その内容は、environ params やその他の構成ファイルよりも優先されます。ただし、コマンド ライン パラメータが優先されます。ただし、検索パスはまだ存在することに注意してください。パッケージが 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)

多くのコマンド ライン コンパイラと Boost ライブラリの config pak は同様の方法で動作すると思います

于 2012-06-18T05:20:25.703 に答える
2

AWS CLIは、受け入れられた回答と一致しています。

オプションの優先順位:

  • このトピックで説明されている環境変数のいずれかを使用してオプションを指定すると、構成ファイル内のプロファイルからロードされた値がオーバーライドされます。

  • CLI コマンド ラインでパラメーターを使用してオプションを指定すると、対応する環境変数または構成ファイル内のプロファイルのいずれかの値が上書きされます。

于 2019-02-15T11:27:18.480 に答える