Во-первых, не используйте os.environ.get('...')
- он молча завершается ошибкой, когда отсутствует переменная среды. Вместо этого используйте os.environ['...']
.
EMAIL_HOST_USER = os.environ['EMAIL_HOST_USER']
print('variable :',os.environ['EMAIL_HOST_USER'])
EMAIL_HOST_PASSWORD = os.environ['EMAIL_HOST_PASSWORD']
Далее .bashrc
или .bash_profile
будут работать только в том случае, если вы запускаете Django из оболочки, которая создала эти файлы. Удалите import os
, это не Python.
Далее вам все равно понадобится export
в вашей оболочке, если вы установите переменные перед запуском Django.
export EMAIL_HOST_USER=name@gmail.com
export EMAIL_HOST_PASSWORD=123456789
Если вы хотите установить переменные окружения в Python, тогда трактуйте os.environ
как диктовку вместо попытки вызвать .set(...)
.
import os
os.environ['EMAIL_HOST_USER'] = 'name@gmail.com'
os.environ['EMAIL_HOST_PASSWORD'] = 12345678
Наконец, даже если это работает на вашем локальном компьютере , он может перестать работать при развертывании на сервере с другим IP-адресом. Каждую неделю я вижу вопросы о переполнении стека, когда пользователи пытаются отправить электронную почту с Django, используя gmail. Я обычно предлагаю им подумать об использовании другого провайдера электронной почты.