I keep getting an import error on environ in my settings.py file, I have it installed via poetry in my .venv file as well. Could this be an error outside the settings file possibly?

`
import environ

env = environ.Env(
    DEBUG=(bool, False),
    ENVIORNMENT=(str, 'PRODUCTION'),
)

environ.Env.read_env()

ENVIRONMENT= env.str('ENVIRONMENT')


SECRET_KEY = env.str('SECRET_KEY')

DEBUG = env.bool('DEBUG')

ALLOWED_HOSTS = tuple(env.list('ALLOWED_HOSTS'))

`
4

There are 4 best solutions below

3
Prabhjot Singh On

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
joe.dinius On

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
0
muel On

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:[email protected]: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
Rupak Biwas On

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