有没有一种方法可以通过字符串从模块导入*(全部)?

名称

我正在尝试创建一个动态定义的设置对象,通常使用该格式

base_settings.py

MY_VAR = 1

my_settings.py

from base_settings import *
assert MY_VAR == 1

但是,在这种情况下,我想base_settings使用一个字符串来定义通往不同设置模块的路径。例如,我可能还有其他基本设置文件:

base_settings1.py

MY_VAR = 1

base_settings2.py

MY_VAR = 2

my_settings.py

import os
base_settings = os.environment['SETTINGS_MODULE']  # This is "base_settings2" for the example
from magic(base_settings) import *
assert MY_VAR == 2

我知道您可以导入,importlib.import_module(path)但是这会将导入的代码返回到特定变量中,而不是“爆炸”到具有原始变量名的导入文件中。

Hrabal

您可以修改locals名称空间,尽管实际上不建议这样做:

mod_name = os.environment['SETTINGS_MODULE']
locals().update({
    k: v for k, v in importlib.import_module(mod_name).__dict__.items() 
    if not k.startswith('_')
})

这会将添加到您的本地(模块)变量的设置模块中找到的变量。

但是,建议不要将它放在封闭的对象中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有一种方法可以通过字符串设置视图的ID

有没有一种方法可以从字符串创建结构实例?

有没有一种方法可以使用vim键在Java中操纵字符串?

有没有一种方法可以简化基于字符串中包含的值的设置?

有没有一种方法可以使R字符串保持原状(不可转义)?

有没有一种方法可以在Python中对字符串中的特定序列进行分组?

有没有一种方法可以从XML文件中以字符串格式获取查询?

有没有一种方法可以将“字符串”转换为“ KType”?

有没有一种方法可以强制Postgres列使用特定的字符串结构?

有没有一种方法可以将JSON中的对象视为字符串?

有没有一种方法可以衡量Google BigQuery中的字符串相似度

有没有一种方法可以在Scala中处理带引号的null字符串?

有没有一种方法可以在R中定义“原始”字符串?

有没有一种方法可以将graphql查询字符串转换为GraphQLResolveInfo对象?

有没有一种方法可以按特定顺序从数组中构建字符串?

有没有一种方法可以从python中的字符串中找到关键字

有没有一种方法可以创建热键以在PhpStorm中打印特定的字符串

有没有一种方法可以在存储字符串时扫描文件并忽略int变量?

有没有一种方法可以使序列号字符串不使用for循环?

有没有一种方法可以在列表中字符串的空格之间插入“-”?

有没有一种方法可以检查以零结尾的字节之后的字符串内容?

有没有一种方法可以在Elixir中将函数体作为字符串获取?

有没有一种方法可以根据输入返回整数或字符串?

Python中有没有一种方法可以分割字符串并连接部分?

有没有一种方法可以在字典键中生成随机字符串?

有没有一种方法可以找到最特定的字符串模式?

有没有一种方法可以访问组成VBA中字符串的各个字节?

有没有一种方法可以通过使用python在字符串前面加上“ \”来生成unicode?

Javascript-有没有一种方法可以通过对象名称作为字符串来测试对象的instanceof