[Fixed]-I keep getting the error "ModuleNotFoundError: No module named 'environ' in my settings.py file". I have installed the dependency in my python shell

16👍

Make sure that you are using the desired python interpreter, that your virtualenv is setup correctly, and that the desired django-environ is installed within that virtualenv via

(inside venv) pip install django-environ

2👍

The problem could occur due to the following reasons:

  1. You are using. Virtual environment, but you installed module outside the virtual environment.
  2. You haven’t added ‘environ’, in your your settings.py file in INSTALLED_APPS.(based on its reference exceptionally not required for this package!)

0👍

Make sure you have done the following three actions:

  1. Install the package through this command:

    (inside venv) pip install django-environ

  2. Select the right python interpreter(the environment in which you have installed the package)

  3. Create an ".env" file in project root directory.
    And based on its reference doc here, it should be consisting of something like below:

DEBUG=on
SECRET_KEY=your-secret-key
DATABASE_URL=psql://user:un-githubbedpassword@127.0.0.1:8458/database
SQLITE_URL=sqlite:///my-local-sqlite.db
CACHE_URL=memcache://127.0.0.1:11211,127.0.0.1:11212,127.0.0.1:11213
REDIS_URL=rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient&password=ungithubbed-secret

0👍

In my case, I had one environ.py file that was clashing with the library import, changing the file name fixed the issue.

For Django there is another option that I use,

from os import getenv
from dotenv import load_dotenv

load_dotenv()

create a .env file along with settings.py then you have to load those variables. For example :

CONFIGURATION = getenv("CONFIGURATION")

Install the module using

pip install python-dotenv

Leave a comment