Правильная спецификация файла для python dotenv CLI?

#python #shell #dotenv

Вопрос:

Проект моей команды использует dotenv пакет python для управления переменными среды в коде, и это работает довольно хорошо. В целях тестирования я хотел бы запустить некоторые команды оболочки (используя DB), используя тот же набор переменных среды. В документации недостаточно подробностей для -f правильного использования параметра --file / . Со структурой каталогов, подобной

 /home/username
├── config
│   └── .env-prod
└── .env
 

Это работает, используя .env :

 $ dotenv get DB_HOST
 

Они не:

 $ dotenv -f ./config/.env-prod get DB_HOST
$ dotenv -f ~/config/.env-prod get DB_HOST
$ dotenv -f=./config/.env-prod get DB_HOST
$ dotenv --file=./config/.env-prod get DB_HOST
$ dotenv get DB_HOST -f ./config/.env-prod
$ dotenv  get DB_HOST --file=./config/.env-prod
 

Я также протестировал параметр file с list помощью and run , и они не работают лучше.

Ответ №1:

Разрешены только полные абсолютные пути. dotenv --file=~/config/.env-prod get DB_HOST не работает, но dotenv --file=/home/username/config/.env-prod get DB_HOST работает.