什么读取配置值顺序?(What order of reading configuration val

2019-07-29 23:55发布

对于Python程序我写我想给三种不同的方式配置它的机会。 环境变量,配置文件和命令行参数。

从逻辑上讲,我认为命令行参数应该总是具有最高优先级。 我有点怀疑的环境变量是否应该优先于配置文件? 并且将它重要的配置文件是否为全系统的,用户特定或者在命令行参数给出?

(请注意,我的平台是在Unix / Linux)

Answer 1:

我所知道的标准是一个命令行参数先来看看,如果没有找到环境VAR,则本地配置文件,则全局配置文件。

所以,当一个包的地方安装。 这将有一个默认的配置文件。 这可以用一个本地配置文件进行更改。 其可以用ENVIRON参数overrridden,然后在命令行PARAM具有最高的优先级。

如果配置文件在命令行上声明那么它的内容将接管ENVIRON params中,任何其他配置文件的优先级。 但命令行PARAMS将优先于它。 但请记住,搜索路径仍然存在。 如果包正在寻找一个变种,它看起来对。

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库配置小唐作品



Answer 2:

AWS CLI与接受的答案行:

选项优先级:

  • 如果使用本主题中描述的环境变量之一指定一个选项,它会覆盖从配置文件中的配置文件中加载的任何值。

  • 如果通过使用CLI命令行上的参数指定一个选项,它将覆盖从任一相应的环境变量或在配置文件中的简档的任何值。



文章来源: What order of reading configuration values?