如果这是一个基本问题,我深表歉意,但我似乎无法在这里或谷歌上找到答案。基本上我正在尝试创建一个单一的配置模块,该模块可用于在 python 应用程序中导入的所有其他模块。当然,如果我import config
在每个文件中都有它,但我想根据应用程序运行的环境使我的配置动态化,并且我不想将逻辑复制到每个文件中。
这是一个例子:
应用程序.py:
import config
import submodule
# do other stuff
子模块.py:
print config.some_config_variable
但是python当然会抱怨config
没有定义。
我确实找到了一些关于全局变量的东西,但这似乎也不起作用。这是我尝试过的:
编辑我更改了它以表明我希望导入的实际配置是动态的。但是,我目前确实有一个用于测试的静态配置模型,只是为了弄清楚如何全局导入,然后担心该逻辑
应用程序.py
# logic here that defines some_dynamic_config
global config
config = __import__(some_dynamic_config)
import submodule
子模块.py
print config.some_config_variable
但是配置仍然没有定义。
我知道我可以创建一个 config.py 并放置逻辑来设置变量,但我不喜欢这样。我更喜欢配置文件只是配置而不包含一堆逻辑。