#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
работает.