--- id: django-environ version: "0.14.0" license: MIT license_treatment: permissive maintenance: active --- # django-environ — A package that allows you to utilize 12factor inspired environment variables to configure your Django application. License: permissive · Maintenance: active · Downloads: 8.6M/mo ## What it is and what it does django-environ bridges environment variables and Django settings by reading .env files and parsing their contents into typed Python objects. It implements the Twelve-Factor methodology, which treats configuration as environment-provided data rather than code, eliminating the need for multiple settings files per deployment environment. The package handles three main tasks: loading variables from .env files into os.environ, casting string values to Python types (bool, int, list, etc.), and parsing connection URL strings (database, cache, email) into Django-compatible configuration dictionaries. It raises Django's ImproperlyConfigured exception when required variables are missing, catching configuration errors early. The single runtime dependency is typing_extensions, and it supports Python 3.9 through 3.14 across Django versions 2.2 to 6.0. Use it for: - Store database credentials and URLs in .env files without committing them to version control - Switch between development, staging, and production configurations by changing environment variables - Parse Redis and cache URLs into Django CACHES configuration dictionaries - Enable Docker deployments using file-based secrets mounted as environment variables - Centralize Django settings configuration in a single file instead of maintaining multiple settings_*.py variants ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Loads and parses environment variables from .env files to configure Django applications using Twelve-Factor methodology, with support for type casting and URL-based connection strings. Yes. django-environ is production-stable, actively maintained, has no known vulnerabilities, minimal install friction, and solves a standard Django configuration problem. It is widely adopted (top 5000 PyPI packages) and supports current Django and Python versions. Install it if you use Django and want environment-based configuration following industry best practices. ## Install pip install django-environ uv add django-environ poetry add django-environ ## Installing django-environ Before you install: Low friction installation with a single runtime dependency (typing_extensions). Active maintenance with a recent release 57 days ago and consistent commit activity; classifiers indicate production-stable status and support across Django 2.2 through 6.0. License in practice: MIT license permits commercial and private use with minimal restrictions; suitable for most projects without licensing concerns. Quickstart: pip install django-environ import environ import os env = environ.Env(DEBUG=(bool, False)) environ.Env.read_env('.env') DEBUG = env('DEBUG') DATABASES = {'default': env.db()} Requires Python 3.9 or later; Django 2.2+ for full compatibility. Verify before relying: - Performance characteristics when handling large numbers of environment variables or complex .env files - Specific behavior differences between Env and FileAwareEnv for Docker-style file-based secrets ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 8.6M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags django environment variables configuration, 12factor django settings, .env file django, environment variable parsing django, django configuration management, database url django config, cache url django settings, django-configuration, environment-variables, 12factor [View on SkillFed](https://skillfed.io/packages/django-environ) · [View on PyPI](https://pypi.org/project/django-environ/)