如何在没有函数定义的脚本中获取hydra配置

问题描述 投票:0回答:1

假设我们有以下设置(从hydra docs复制并缩短):

配置文件:config.yaml

db:
  driver: mysql
  user: omry
  pass: secret

Python文件:my_app.py

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

当我们可以在函数my_app上使用装饰器时,这很好用。现在,我想(对于小型脚本和测试目的而言,但这并不重要),只需使用简单的python脚本即可将此cfg对象获取到任何函数之外。据我了解装饰器的工作原理,应该可以调用

import hydra
cfg = hydra.main(config_path="config.yaml")(lambda x: x)()
print(cfg.pretty())

但是cfg只是None,而不是所需的配置对象。因此,装饰器似乎没有传递返回的值。还有另一种方法可以到达cfg吗?

python-3.x hydra
1个回答
0
投票

我找到了一个很丑陋的答案,但它可以工作-如果有人找到了更优雅的解决方案,请告诉我们!

© www.soinside.com 2019 - 2024. All rights reserved.