背景
我目前有一个脚本,它可以进行一些API数据收集。脚本部署到两个环境,即test和user。每个环境都有不同的设置,我已经创建了相应的配置文件。我目前正在迁移我的项目以使用hydra-core包。
目标
如果可能的话,我想配置九头蛇为这样。从test或user加载所有配置文件。默认的应该是test环境,除非通过CLI指定加载user环境。
电流结构
Project Root
|
├── config
│ ├── config.yaml
│ ├── test
│ │ ├── config1.yaml
│ │ ├── config2.yaml
│ │ ├── config3.yaml
│ │ └── config4.yaml
│ └── user
│ ├── config1.yaml
│ ├── config2.yaml
│ ├── config3.yaml
│ └── config4.yaml当前默认配置- config.yaml
defaults:
- test: [config1.yaml, config2.yaml, config3.yaml, config4.yaml]如何通过CLI覆盖上述默认设置?
发布于 2022-05-12 08:30:52
您可以引入一个配置组,例如env,它包含要为每个环境使用的默认列表。
├── config
│ ├── config.yaml
│ ├── env
│ │ ├── user.yaml
│ │ └── test.yaml
│ ├── test
│ │ └── user.yaml
│ └── user
│ └── config1.yamlenv/user.yaml:
defaults:
- /user/config1
- /user/config2环境/测试.:
defaults:
- /test/config1
- /test/config2主config.yaml:
defaults:
- env: test # Overridable有了以上所述,您应该能够覆盖环境,例如:
$ python foo.py env=userhttps://stackoverflow.com/questions/72210571
复制相似问题