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")
这是我的项目结构:
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")