Настройка AS3 для Heroku; собиратьстатическую ошибку для sendgrid

Я пытаюсь настроить Amazon S3 для использования статических и мультимедийных файлов в моем первом приложении Django на Heroku. Процесс прошел довольно гладко, но при запуске ./manage.py collectstatic для копирования моих статических файлов в корзину AS3 я получаю следующую ошибку:

  File "manage.py", line 12, in <module>
  import settings
  File "/Users/me/djangoprojects/project/project/settings.py", line 165, in <module>
  EMAIL_HOST_USER = os.environ['SENDGRID_USERNAME']
  File "/Users/me/djangoprojects/env/bin/../lib/python2.7/UserDict.py", line 23, in __getitem__
  raise KeyError(key)
  KeyError: 'SENDGRID_USERNAME'

Настройки для sendgrid до сих пор работали для развертывания:

EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = os.environ['SENDGRID_USERNAME']
EMAIL_HOST_PASSWORD = os.environ['SENDGRID_PASSWORD']
EMAIL_PORT = 587
EMAIL_USE_TLS = True

Я не уверен, в чем проблема, так как файлы не копируются в корзину AS3 из-за этой ошибки. Любое понимание или опыт высоко ценится.


person Why Not    schedule 09.07.2012    source источник


Ответы (2)


Вам нужно включить переменные среды во время компиляции. Ознакомьтесь с документами heroku (прокрутите вниз до раздела "Переменные конфигурации во время сборки") .

Для ленивых:

heroku labs:enable user_env_compile -a myapp
person Swift    schedule 09.07.2012
comment
Хорошо, это звучало как проблема. Я выполнил эту команду, и я все еще получаю сообщение об ошибке при попытке collectstatic. Должно ли быть установлено что-то еще? Я прочитал документы, и ничего не решает проблему. Должен ли я загрузить новую версию в Heroku, прежде чем пытаться снова › - person Why Not; 09.07.2012
comment
Я отправил исправленный мастер на Heroku, и я все еще получаю ту же ошибку. Действительно в недоумении. - person Why Not; 09.07.2012
comment
Две вещи, которые вы можете попробовать: 1) print os.environ перед кодом, который вызывает проблему, чтобы увидеть, действительно ли установлены переменные env. 2) используйте os.environ.get или os.getenv, которые по умолчанию равны None, если переменная не определена. - person Swift; 10.07.2012

У меня была идентичная ошибка при развертывании приложения Django с Sendgrid в приложении для обзора Heroku. Наша конфигурация заключалась в том, чтобы запускать приложение для проверки всякий раз, когда на GitHub открывался новый PR.

Проблема оказалась в том, что конфигурация Sendgrid в app.json была добавлена ​​к уже существующему PR, что не привело к созданию нового приложения. По крайней мере, для приложений обзора Heroku надстройки генерируются только при первом развертывании приложения. В результате приложение для обзора Heroku не имело надстройки Sendgrid и не работало.

Решение состояло в том, чтобы проверить другую ветку, отправить ее на GitHub и заставить Heroku сгенерировать новое приложение для проверки с нуля.

person Charlie Weems    schedule 09.12.2016