Python не обнаруживает конфигурацию Heroku

1

Из моей командной строки Windows 10:

heroku config

дает выход:

=== test-bot Config Vars
GROUPME_BOT_ID: [111111111111111111]

Мой код Python 3:

  data = {
          'bot_id' : os.getenv('GROUPME_BOT_ID'),
          'text'   : "hi",
         }
  print(data)

выходы:

{'bot_id': None, 'text': 'hi'}

bot_id - None вместо 111111111111111111. Зачем?

Для тестирования я выполняю свой код из командной строки моего компьютера с Windows:

python app.py
Теги:
heroku
environment-variables

1 ответ

2
Лучший ответ

heroku:config только устанавливает переменные среды на Heroku. Чтобы запустить код локально, вам придется локально устанавливать переменные среды. (Они могут отличаться в развитии и производстве. Вся идея - они специфичны для окружающей среды.)

Есть несколько способов сделать это. Вот два:

  • На вашей локальной машине вы можете использовать файл .env содержащий данные в формате

    VAR1=value
    VAR2=value2
    

    а затем запустите приложение с помощью Foreman, который автоматически прочитает файл .env и установит соответствующие переменные среды:

    foreman start
    
  • Вы можете установить переменные окружения, используя что - то вроде direnv, которые будут читать в .envrc файл для вашего проекта каждый раз, когда вы cd в свой каталог и установить переменные среды соответственно. В этом случае вам не нужно использовать Foreman; python app.py должен работать нормально.

    Есть редактор и IDE-плагины для direnv которые также могут автоматизировать это в вашем редакторе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню