相关疑难解决方法(0)

如何在不使用 @hydra.main() 的情况下获取 Hydra 配置

假设我们有以下设置(从Hydra 文档中复制和缩短):

配置文件: config.yaml

db:
  driver: mysql
  user: omry
  pass: secret
Run Code Online (Sandbox Code Playgroud)

蟒文件: my_app.py

import hydra
@hydra.main(config_path="config.yaml")
def my_app(cfg):
    print(cfg.pretty())
if __name__ == "__main__":
    my_app()
Run Code Online (Sandbox Code Playgroud)

当我们可以在函数上使用装饰器时,这很有效my_app。现在我想(为了小脚本和测试目的,但这并不重要)cfg在任何函数之外获取这个对象,只是在一个普通的 python 脚本中。据我了解装饰器的工作原理,应该可以调用

import hydra
cfg = hydra.main(config_path="config.yaml")(lambda x: x)()
print(cfg.pretty())
Run Code Online (Sandbox Code Playgroud)

但 thencfg只是None而不是所需的配置对象。所以看起来装饰器没有传递返回值。有没有另一种方法可以做到这一点cfg

python-3.x hydra-python fb-hydra

13
推荐指数
2
解决办法
5117
查看次数

标签 统计

fb-hydra ×1

hydra-python ×1

python-3.x ×1