参见英文答案 >
Python: How to import all methods and attributes from a module dynamically 2个
尝试根据一些动态环境变量动态地将设置属性添加到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
可以将其添加到全局范围.
但是,使用通配符*需要做什么?
globals()[*] = import_module('path.to.package', '*')
显然,上面会导致语法错误.