dotenv-flow

Like the dotenv-flow NodeJS library, for Python


Keywords
environment, variables, deployments, settings, env, dotenv, configurations, python
License
WTFPL
Install
pip install dotenv-flow==0.3.3

Documentation

dotenv_flow

Hierarchically load different dotenv files based on the value of the PY_ENV variable. Dotenv files will be searched by name, by decreasing order of priority (specificity) to the selected environment.

As dotenv files are loaded, the process' environment (os.environ) is enriched with the variables found in those files. Environment values that already exist will be left untouched.

Files have 2 flavors:

  • public (ex: .env.dev) that should be committed to version control
  • private (ex: .env.dev.local) that has preference over the previous one if present, and should NOT

This is the python version of Node's dotenv-flow.

dotenv files are loaded with python-dotenv

This should be added to version control ignore file:

# local .env* files
.env.local
.env.*.local

It's probably a good idea to also ignore plain .env files, as most tools will warn you that it's a potential security risk. Instead, including a .env-example seems to be a popular way to document the environment variables in use.