Проблема решить, использовать ли autoenv или python dotenv - PullRequest
0 голосов
/ 01 ноября 2018

Я был знаком с обоими этими инструментами, но, похоже, они служат одной и той же цели. У меня вопрос, они разные и если да, то как?

В моем исследовании мне кажется, что autoenv имеет глобальный охват, в то время как dotenv более специфичен для конкретного приложения. Хотя это кажется преимуществом во многих случаях, мне интересно, может ли это также привести к непредвиденным проблемам.

Во-вторых, каковы плюсы / минусы использования одного над другим (или я должен использовать каждый в разных ситуациях?)

Я прочитал документацию для каждого, но не смог найти статью, сравнивающую их. Совсем недавно я стал лучше понимать переменные среды в целом, поэтому извиняюсь, если упустил что-то очевидное из документации.

В первую очередь я занимаюсь разработкой веб-приложений для Flask и развертыванием на Heroku, если это повлияет на мой выбор.

Заранее спасибо.

1 Ответ

0 голосов
/ 20 мая 2019

autoenv, предназначено для Cli, чтобы включить среды, когда вы перейдете в каталог, содержащий файл .env.

Fx. если вам нужны некоторые переменные среды в вашей локальной среде разработки при каждом переходе в каталог, вы должны использовать autoenv или более зрелую альтернативу direnv .

dotenv используется в python, чтобы найти файл .env в рабочем каталоге или родительских каталогах и загрузить их переменные, это хорошо для сервисов, так как у них обычно не работает оболочка.

Так что для развертывания вашей героки вы должны использовать dotenv.

Если вы, однако, вводите конфигурационные переменные прямо в настройках heroku, вам это тоже не нужно, просто используйте os.getenv:

from os import getenv
print(getenv('MY_ENVIRONMENT_VARIABLE'))
...