尝试根据一些动态环境变量动态地将设置属性添加到globals()
。
import os
from importlib import import_module
# To support environment variables as the means of specifying
# the target environment as an alternative to using the --settings flag
# where MY_ENV is 'local', 'development', 'staging', 'production'
if os.environ.get('MY_ENV'):
env = os.environ.get('MY_ENV')
import_module('my.settings.%s' % env, '*')
了解import_module
需要分配给变量:
foo = import_module('path.to.package', 'bar')
那:
globals()[foo] = foo
可以将其添加到global
范围。
但是,通配符*
要做什么?
globals()[*] = import_module('path.to.package', '*')
显然,上面会导致语法错误。
答案 0 :(得分:0)
做你想做的事,你需要使用“__import __()”而不是import_module()
我认为这个答案可以帮到你
How can I import a package using __import__() when the package name is only known at runtime?