YAML 配置文件未加载到 dyanconf 设置中

YAML config file is not loaded in dyanconf settings

这是我的项目结构:

project/
   src/
      settings.py
   examples/
      example-config.yaml
# settings.py
OUTPUT_DIR = "generated"
# example-config.yaml
OUTPUT_DIR: "custom_dir"

根据文档 settings.py 自动加载。因此下面的代码有效:

from dynaconf import settings
print(settings.OUTPUT_DIR) # prints -> generated

然而,当尝试加载 example-config.yaml 时,没有任何变化。见下文:

from dynaconf import settings
settings.load_file("../examples/example-config.yaml")
print(settings.OUTPUT_DIR) # prints -> generated. expected -> custom_dir

我是不是漏掉了什么?

OUTPUT_DIR = "custom_dir"

在 YAML 中是一个标量,而不是字典。您想使用正确的 YAML 语法,即

OUTPUT_DIR: custom_dir

您应该明确设置导入的根目录,我遇到了类似的找不到配置文件的问题,而 dynaconf 默默地抑制了所有错误。

对于较旧的 Dynaconf,您可以将 ROOT_PATH_FOR_DYNACONF 环境变量设置为项目的基本路径。

对于 Dynaconf 版本 > 3,建议您自己创建一个 Dynaconf 实例。你应该在那里设置 root_path

config.py 文件:

from dynaconf import Dynaconf

settings = Dynaconf(root_path="/path/to/project")

然后就可以使用相对导入了。

from project.config import settings

settings.load_file("examples/example-config.yaml")