django.core.exceptions.ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured

Question:

I want to connect MySQL database to my django project, but it is throwing an error :

“django.core.exceptions.ImproperlyConfigured: Requested setting
USE_I18N, but settings are not configured. You must either define the
environment variable DJANGO_SETTINGS_MODULE or call
settings.configure() before accessing settings.”

Trace:

 (myenv) LIBINGLADWINs-MacBook-Air:libinrenold$ django-admin dbshell
Traceback (most recent call last):
  File "/Users/libinrenold/Desktop/djangoworks/myenv/bin/django-admin", line 11, in <module>
    sys.exit(execute_from_command_line())
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/base.py", line 322, in execute
    saved_locale = translation.get_language()
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/utils/translation/__init__.py", line 195, in get_language
    return _trans.get_language()
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/utils/translation/__init__.py", line 59, in __getattr__
    if settings.USE_I18N:
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/conf/__init__.py", line 39, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

settings.py.

  DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'user',
        'PASSWORD': 'root',
        'HOST':'',
        'PORT': '',
        }
     }
Asked By: reno_libiii

||

Answers:

You must define the relevant variable to show where your settings.py file lives:

export DJANGO_SETTINGS_MODULE=mysite.settings

This is the relevant docs entry:

When you use Django, you have to tell it which settings you’re using.
Do this by using an environment variable, DJANGO_SETTINGS_MODULE.

The value of DJANGO_SETTINGS_MODULE should be in Python path syntax,
e.g. mysite.settings. Note that the settings module should be on the
Python import search path.

If you are using a virtualenv (which is the best practice), you can paste the relevant export command in the file <path-to-virtualenv>/bin/activate

Answered By: raratiru

put this in top of settings.py
this will configure django for you

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", __file__)
import django
django.setup()
Answered By: Naqib Hakimi

Like raratiru answered, you need DJANGO_SETTINGS_MODULE environment variable defined with the relative pythonic path to your setting file.

OR use your django-admin command with the settings parameter:

django-admin --settings=mysite.settings dbshell
Answered By: ppython

It happens to me too, I just now found unintentional.

I changed “configuration” in top of PyCharm IDE so pycharm confused when try to run django code. Exactly the problem popup when I try to run server with shortcut but when I used terminal to run server, I found django code not having any problem and pycharm can’t found setting.

So please check “configuration” in top pycharm’s ide maybe you do same mistake 🙂

I’m new in django so be calm if my answer was silly.

configuration picture

Answered By: mehdi

I had the same error with Django 3.0.8 (july 2020) when trying to run the server, and in my case no need for the DJANGO_SETTINGS_MODULE environment variable. The solution is to use another form to run the server:

cd <directory containing manage.py>
python3 manage.py runserver

It works to run Django shell too :

python3 manage.py shell
Answered By: Alain Cherpin

Problem

I had the same error with Django==3.2 and djangorestframework==3.12.4 (2021/04) when I ran unittest. In my case, the python manage.py test works properly but I cannot directly run or debug the test module which was in a specific app, and I get this error:

django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

Solution

First I added the django project root to the sys.path. Then I added DJANGO_SETTINGS_MODULE to the environment variable to address the project setting root and called the Django setup function. This is my code:

from os import path, environ
from sys import path as sys_path
from django import setup

sys_path.append(<path to django setting.py>)    
environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.settings')
setup()
Answered By: r_agha_m

I had this problem because I tried to import a django script after just typing

python

instead of

python manage.py shell

Duh!

Answered By: Rick Graves

Below code in terminal to manually inform which settings I am using worked for me:

set DJANGO_SETTINGS_MODULE=mysite.settings
Answered By: Haris Sheikh

Dear all I faced the same problem and i scrapped the web to find a solution. None of the one above solved anything.

The issue in my case was related to a wrong configuration of pycharm. As for someone above the app didnt have any issue when launched from the command line/ shell.

The issue is here:

enter image description here

For some reason the env variable disappeared. i added back and everything started to work again without any issue.

Answered By: Stefano Tuveri
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.