Viper AddConfigPath находит файл только в текущей папке "."

Есть код, похожий на

viper.AddConfigPath(".")
viper.AddConfigPath("$HOME/.config/myprogram")
viper.AddConfigPath("$HOME/configs")
viper.SetConfigFile("myprogram.yaml")

Если я помещу myprogram.yaml в текущую папку, это сработает. Однако, если я попытаюсь надеть его либо

$HOME/.config/мояпрограмма
$HOME/configs

Файл yaml не найден. Любые идеи или предложения?

Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
2
0
998
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из документации viper:

SetConfigFile явно определяет путь, имя и расширение файл конфигурации. Viper будет использовать это и не будет проверять какие-либо настройки. пути.

Поэтому, если вы используете SetConfigFile, пути будут игнорироваться. Попробуйте (согласно примеру ):

viper.SetConfigName("myprogram")
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.AddConfigPath("$HOME/configs")
viper.AddConfigPath("$HOME/.config/myprogram")

Другие вопросы по теме