https://blog.apporc.org/2016/08/python-%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86%EF%BC%9Aoslo-config/
oslo.config 是用于从命令行或配置文件解析配置参数的框架,来自于万能的 OpenStack
社区。作为 oslo 项目的子项目,可以通用在任何 python 程序中。
oslo.config 的主要特性包括:
- 参数的类型限定
- 同时管理命令行与配置文件(ini)
- 自动生成示例配置文件
- 支持参数分组
- 运行时重新载入配置
快速开始
-
安装 oslo.config
pip install oslo.config
-
#!/usr/bin/python # test_oslo_config.py from oslo_config import cfg from oslo_config import types PortType = types.Integer(1, 65535) common_opts = [ cfg.StrOpt('bind_host', default='0.0.0.0', help='IP address to listen on.'), cfg.Opt('bind_port', type=PortType, default=9292, help='Port number to listen on.') ] CONF = cfg.CONF CONF.register_opts(common_opts) CONF.register_cli_opts(common_opts) import sys if __name__ == '__main__': CONF(sys.argv[1:]) print("bind_host: %s, bind_port: %s" % (CONF.bind_host, CONF.bind_port))
-
$ ./test_oslo_config.py --bind_host localhost --bind_port 8080 bind_host: localhost, bind_port: 8080
测试生成配置文件
oslo-config-generator --namespace test_oslo_config > test.conf
[DEFAULT]
#
# From test_oslo_config
#
# IP address to listen on. (string value)
#bind_host = 0.0.0.0
# Port number to listen on. (integer value)
# Minimum value: 1
# Maximum value: 65535
#bind_port = 9292