For a python library for managing application configuration, the strongest matches are theskumar/python-dotenv (This library is a specialized tool for loading environment), facebookresearch/hydra (Hydra is a comprehensive configuration management framework that natively) and dynaconf/dynaconf (Dynaconf is a comprehensive configuration management library for Python). pydantic/pydantic and omry/omegaconf round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best python configuration libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
python-dotenv is a library and command line interface for managing environment variables in Python applications. It functions as a configuration parser and loader that reads key-value pairs from files and injects them into the system environment, enabling the decoupling of application configuration from source code. The project provides a command line interface for manipulating and editing environment variables within configuration files. It also includes a mechanism for recursive variable interpolation, allowing dynamic placeholders within configuration files to be resolved using existing en
This library is a specialized tool for loading environment variables from files into your application's environment, which is a core component of Python configuration management.
Hydra is a hierarchical configuration framework and type-safe configuration manager. It is designed to manage complex application settings through composable configuration files and command-line overrides, ensuring that configuration values match expected data types during instantiation. The framework functions as a dynamic object instantiator that creates class instances directly from hierarchical configuration values and nested objects. It also operates as a hyperparameter sweep orchestrator and cluster job launcher, enabling the execution of multiple application runs across parameter range
Hydra is a comprehensive configuration management framework that natively supports hierarchical structures, type validation, and command-line overrides, making it a robust solution for managing complex application settings.
Dynaconf is a configuration management library for Python applications that provides a unified system for loading, validating, and managing settings. It aggregates configuration data from multiple files, environment variables, and external stores into a single object using a defined precedence order. The project distinguishes itself through a layered environment manager that separates settings into distinct profiles, such as development and production. It includes a declarative validation framework to enforce data rules and type constraints during the loading process, as well as an external s
Dynaconf is a comprehensive configuration management library for Python that natively supports environment variables, multiple file formats, hierarchical settings, and robust type validation, making it a perfect fit for your requirements.
Pydantic is a data validation and serialization library that enforces schema constraints and performs type conversion on complex data structures. It utilizes standard Python type annotations to define data models, allowing developers to establish structured schemas that automatically enforce business rules and constraints without the need for custom domain-specific languages. The library distinguishes itself by transforming high-level model definitions into optimized code during initialization to minimize runtime overhead. It supports recursive validation for nested data structures and employ
Pydantic is a powerful data validation library that includes robust, type-safe configuration management features, making it a standard choice for handling environment variables and complex settings in Python applications.
Flexible Python configuration system. The last one you will ever need.
This library provides a robust, hierarchical configuration system that supports multiple formats, type validation via schemas, and seamless integration with environment variables.
Dotenv is a configuration management library designed to load environment variables from local files into the process environment. By separating application settings from source code, it enables developers to maintain consistent configurations across different deployment stages and team environments. The utility provides mechanisms to transform plain text configuration files into encrypted formats, allowing sensitive secrets to be stored securely within version control systems. It handles the parsing and normalization of key-value pairs, ensuring that configuration data is consistently proces
This is a JavaScript library for loading environment variables into a Node.js process, which does not fit the requirement for a Python-based configuration management library.
Viper is a configuration management library designed to centralize application settings from diverse sources into a unified, type-safe registry. It aggregates data from local files, environment variables, command-line flags, and remote key-value stores, providing a single source of truth for application state. By utilizing a hierarchical key-value registry, the system resolves configuration values based on a prioritized stack of providers, ranging from default values to runtime overrides. The library distinguishes itself through its pluggable provider abstraction and dynamic update capabiliti
This is a configuration management library, but it is written in Go rather than Python, making it a tool for a different ecosystem.
Mise is a development environment orchestrator that manages software runtimes, environment variables, and task execution. It functions as a version manager and task runner, providing a unified interface to synchronize project-specific configurations and dependencies across different machines. By automating the installation and switching of tools, it ensures that development environments remain consistent and reproducible. The project distinguishes itself through a hierarchical configuration system that automatically discovers settings by traversing the directory tree. It uses shim-based comma
This tool is a development environment orchestrator and version manager rather than a Python library for managing application settings within your code.
This project is a command-line utility that executes processes by injecting environment variables from local configuration files. It functions as a runtime wrapper, allowing developers to manage application settings and process execution contexts without modifying global system variables. The tool distinguishes itself by supporting dynamic configuration loading, which allows for the use of files that export objects or promises to compute values at runtime. It provides granular control over environment management, including the ability to group variables into named collections, protect existin
This is a Node.js command-line utility for injecting environment variables into processes, which serves a different ecosystem and operational purpose than a Python-based configuration management library.
direnv is a shell environment manager and directory-based environment loader that automatically loads and unloads environment variables when switching between directories. It functions as a shell hook automation tool, injecting logic into the shell configuration to trigger environment updates based on the current project context. The project acts as a development environment isolator by localizing shell configurations, which prevents dependency conflicts and removes project-specific exports from global profile files. It includes specialized integration for Nix, allowing the loading of environ
This tool manages shell environment variables based on your current directory, but it is a shell utility rather than a Python library for managing application-level configuration and settings.
This project is a Python framework for building command-line interfaces by converting standard functions into executable programs. It uses type hints to automatically infer and generate argument parsers, validation logic, and help documentation, allowing developers to define complex terminal applications through simple function signatures. The framework distinguishes itself through a decorator-driven registration system that enables the construction of hierarchical command trees. It supports dependency injection to manage shared state and runtime configuration across subcommands, and it utili
This is a library for building command-line interfaces rather than a configuration management tool, though it can be used to handle command-line arguments that influence application settings.
Torchtune is a PyTorch-native library for fine-tuning, aligning, and quantizing large language models. It provides a config-driven system for instantiating components, orchestrating distributed training, and managing parameter-efficient fine-tuning with quantization support, all through YAML-based configurations and command-line overrides. The library distinguishes itself through its comprehensive post-training workflow orchestration, combining supervised fine-tuning, preference optimization (DPO, PPO, GRPO), knowledge distillation, and quantization-aware training in a single configurable pip
This is a specialized library for fine-tuning large language models that happens to use a configuration system for its internal workflows, rather than a general-purpose tool for managing application settings and environment variables.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| theskumar/python-dotenv | 8.8K | Python | BSD-3-Clause | |
| facebookresearch/hydra | 10.4K | Python | MIT | |
| dynaconf/dynaconf | 4.3K | Python | MIT | |
| pydantic/pydantic | 26.9K | Python | mit | |
| omry/omegaconf | 2.4K | Python | BSD-3-Clause | |
| motdotla/dotenv | 20.3K | JavaScript | bsd-2-clause | |
| spf13/viper | 30.3K | Go | MIT | |
| jdx/mise | 29.9K | Rust | MIT | |
| toddbluhm/env-cmd | 1.8K | TypeScript | MIT | |
| direnv/direnv | 15.2K | Go | MIT |