Python importlib import_module将*添加到全局变量

时间:2014-01-25 07:04:52

标签: python

尝试根据一些动态环境变量动态地将设置属性添加到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', '*')

显然,上面会导致语法错误。

1 个答案:

答案 0 :(得分:0)

做你想做的事,你需要使用“__import __()”而不是import_module()

我认为这个答案可以帮到你

How can I import a package using __import__() when the package name is only known at runtime?