'is there any solution to this django.core.exceptions.ImproperlyConfigured: Set the EMAIL_HOST environment variable [duplicate]

I'm tyring to deploy my app to heroku.

after successfully running git push heroku main

i'm tyring to run the command

heroku run python manage.py makemigrations

and i'm getting this error

File "/app/.heroku/python/lib/python3.10/site-packages/environ/environ.py", line 367, in get_value
    value = self.ENVIRON[var]
  File "/app/.heroku/python/lib/python3.10/os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'EMAIL_HOST'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/manage.py", line 22, in <module>
    main()
  File "/app/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/base.py", line 393, in execute
    self.check()
  File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/base.py", line 419, in check
    all_issues = checks.run_checks(
  File "/app/.heroku/python/lib/python3.10/site-packages/django/core/checks/registry.py", line 76, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "/app/.heroku/python/lib/python3.10/site-packages/django/core/checks/urls.py", line 35, in check_url_namespaces_unique
    if not getattr(settings, 'ROOT_URLCONF', None):
  File "/app/.heroku/python/lib/python3.10/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/app/.heroku/python/lib/python3.10/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "/app/.heroku/python/lib/python3.10/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/app/.heroku/python/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/app/blogpost/settings.py", line 163, in <module>
    EMAIL_HOST = env('EMAIL_HOST')
  File "/app/.heroku/python/lib/python3.10/site-packages/environ/environ.py", line 175, in __call__
    return self.get_value(
  File "/app/.heroku/python/lib/python3.10/site-packages/environ/environ.py", line 371, in get_value
    raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured: Set the EMAIL_HOST environment variable

my settings.py looks this

import environ

from pathlib import Path
import os
import django_heroku
import dj_database_url




BASE_DIR = Path(__file__).resolve().parent.parent

DEBUG = True

ALLOWED_HOSTS = ['*']

DATABASES = {
    'default': dj_database_url.config()
    
    }

env = environ.Env()
environ.Env.read_env()


# Bottom of the file
EMAIL_BACKEND ='django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST= env('EMAIL_HOST')
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = env('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD')

# Custom setting. To email
RECIPIENT_ADDRESS = env('RECIPIENT_ADDRESS')
django_heroku.settings(locals())

my .env file looks like this. and it's inside the folder that contains settings.py

EMAIL_HOST=jfjfjfjfjfjhdhd
EMAIL_HOST_USER=jdjdjdjdj
EMAIL_HOST_PASSWORD=kskskkssjsjss
RECIPIENT_ADDRESS=kdkdjdjdjdjdjd

Lastly, when I clicked on my deployed app link, i'm getting this error

Application error
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
heroku logs --tail

What's the possible reasonson for this, could it because I haven't done the migrated to heroku?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source