我想动态地将各种设置和配置导入到我的python程序中 - 您通常使用.ini文件或类似的东西.
我开始使用JSON获取配置文件语法,然后转移到YAML,但我真的想使用Python.它将最小化格式数量并允许我在配置文件中使用代码,这很方便.
我修改了一个__import__基于系统,允许使用如下代码:
account_config = __import__(settings.CONFIG_DIR + '.account_name', fromlist=[settings.CONFIG_DIR])
Run Code Online (Sandbox Code Playgroud)
它基本上有效,但我遇到了各种各样的深奥问题 - 例如.如果我尝试导入"test",它会选择一些python路径中的内部python库而不是我的测试.
所以我想知道:使用python作为python程序的配置语言是可行的还是我要求麻烦?有可以偷走的例子吗?
一个简单的方法就是这样.
您的配置文件分配了一堆全局变量.
CONFIG = "some string"
ANOTHER = [ "some", "list" ]
MORE = "another value"
Run Code Online (Sandbox Code Playgroud)
您可以像这样使用导入所有这些设置
settings = {}
execfile('the_config.py', settings )
settings['CONFIG'] == "some string"
Run Code Online (Sandbox Code Playgroud)
现在,您的设置字典已设置所有全局变量.