Обращение к каталогу `conf` Hydra из модуля под/подподкаталога PythonPython

Программы на Python
Ответить
Anonymous
 Обращение к каталогу `conf` Hydra из модуля под/подподкаталога Python

Сообщение Anonymous »

Предположим, что у нас есть проект Python со следующей структурой:

Код: Выделить всё

hydra_config
├── conf
│   ├── api_key
│   │   ├── non_prod.yaml
│   │   └── prod.yaml
│   └── db
│       ├── mysql.yaml
│       └── postgresql.yaml
├── modules
│   └── module.py
└── my_app.py
В документации по конфигурации Hydra указано, что нам нужно добавить декоратор @hydra.main поверх функции, которой мы хотим предоставить доступ к файлам конфигурации. Однако в документации показано, как это сделать только с функцией в my_app.py, которая является основным модулем проекта. Но как мне применить этот декоратор к функции в модулях/module.py?
Вот содержимое файлов:

Код: Выделить всё

# modules/module.py

import hydra
from omegaconf import DictConfig, OmegaConf

@hydra.main(config_path="conf")
def module_function(cfg: DictConfig):
print(OmegaConf.to_yaml(cfg))

Код: Выделить всё

# my_app.py

from modules.module import module_function

def main():
module_function()

if __name__ == "__main__":
main()
Но когда я запустил

Код: Выделить всё

python my_app.py
[/b], у меня возникла ошибка:

Код: Выделить всё

Primary config module 'modules.conf' not found.
Check that it's correct and contains an __init__.py file

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
Я понимаю, что это означает, что декоратор, добавленный в модуль_функцию внутри модуля.py, не смог найти каталог conf, который содержит api_key Группы конфигурации и db.
Кто-нибудь здесь имеет опыт работы с этим и знает, как исправить эту ошибку?

Подробнее здесь: https://stackoverflow.com/questions/708 ... ory-module
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»