everett
Configuration library for Python applications
What it is and what it does
Everett is a configuration library designed to centralize how Python applications read and validate settings from multiple sources—environment variables, .env files, INI, YAML, and custom sources. It handles type conversion (bool, int, lists, classes), provides clear error messages when configuration is invalid, and includes a Sphinx extension for auto-generating configuration documentation. The library is built around the 12-Factor app pattern and supports component-based architectures with namespaced configuration keys.
The package is now deprecated and its repository is archived as of October 2025. While it remains functional for existing projects, no new features or maintenance will be provided. It is suitable for applications already using it or for new projects that do not require ongoing vendor support, but teams starting fresh should evaluate actively maintained alternatives.
Use it for:
- Building 12-factor web applications that read configuration from environment variables and .env files during development and deployment.
- Testing application behavior under different configuration scenarios using config_override context manager to inject test values.
- Generating configuration documentation automatically for end users via Sphinx directives without manual duplication.
- Managing multi-component applications where different modules need namespaced configuration keys and isolated settings.
- Parsing and validating typed configuration values (booleans, integers, lists) with helpful error messages when users provide invalid input.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Everett is a configuration library that reads settings from environment variables, .env files, INI, YAML, and other sources, with support for type parsing, validation, and automated documentation.
No—not for new projects. Everett is deprecated and archived as of 2025-10-15, with no further maintenance planned. While it is stable and has no known vulnerabilities, the lack of ongoing support means compatibility issues with future Python versions will not be addressed. Existing projects using it can continue, but new development should choose an actively maintained alternative.
Install
everett on PyPI
pip
pip install everettuv
uv add everettpoetry
poetry add everettInstalling everett
Before you install
Installation is straightforward with no runtime dependencies for basic use. However, the project is marked deprecated as of 2025-10-15 and the repository is archived, meaning no further maintenance or updates will occur.
License in practice
Everett is licensed under MPL v2, a copyleft license requiring derivative works to disclose source code changes under the same license. This is permissive for use but imposes obligations if you modify and distribute the library.
Quickstart
pip install everett
from everett.manager import ConfigManager
config = ConfigManager.basic_config()
host = config("host", default="localhost")
port = config("port", default="8000", parser=int)
Requires Python 3.10 or later. Optional dependencies (configparser for INI, pyyaml for YAML) needed only if using those formats.
Verify before relying
- Whether the abandoned status and archived repository will affect long-term compatibility with future Python releases beyond 3.14.
- Whether existing users have migrated to alternative maintained configuration libraries and what the migration path looks like.
Package facts
| License | MPLv2 (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 303 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 706,866/month — #5,268 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: everett-3.5.0-py3-none-any.whl
Keywords: conf, config, configuration, ini, env, yaml
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
envierEnvier extracts application configuration from…
permissive · top 1,000 on PyPI
python-dotenvReads key-value pairs from a .env file and sets…
permissive · top 100 on PyPI
python-decoupleReads configuration parameters from environment…
permissive · top 5,000 on PyPI
setoptconfSetoptconf retrieves program settings from…
permissive · top 15,000 on PyPI
hierarchical-confLoads configuration from YAML files organized…
unclear · top 15,000 on PyPI
pytest-dotenvA pytest plugin that automatically loads…
permissive · top 5,000 on PyPI
confuseConfuse is a YAML configuration library that…
permissive · top 5,000 on PyPI
yaml-configReads configuration from YAML files and…
unclear · top 5,000 on PyPI
pyaml-envParses YAML configuration files and resolves…
permissive · top 15,000 on PyPI
oslo.configParses command-line arguments and .ini-style…
permissive · top 5,000 on PyPI