Wrapper to run programs with different env
Project description
Wrapper to run programs with modified environment variables loaded from given file. You can use runenv to manage your app settings using 12-factor principles.
You can use same environment file with runenv and with docker using env-file parameter
Free software: BSD license
Documentation: https://runenv.readthedocs.org.
Installation
In order to install use pip:
$ pip install -U runenv
Usage
Run from shell:
$ runenv env.development ./manage.py runserver
example env.development file:
BASE_URL=http://127.0.0.1:8000 DATABASE_URI=postgres://postgres:password@localhost/dbname SECRET_KEY=y7W8pbRcuPuAmgTHsJtEpKocb7XPcV0u # email settings EMAIL_HOST=smtp.mandrillapp.com EMAIL_PORT=587 EMAIL_HOST_USER=someuser EMAIL_HOST_PASSWORD=hardpassword EMAIL_FROM=dev@local.host EMAIL_USE_TLS=1
Python API
load_env(env_file=’.env’, prefix=None, strip_prefix=True, force=False)
Loads environment from given env_file`, default .env.
If prefix provided only variables started with given prefix will be loaded to environment with keys truncated from prefix. To preserver prefix, pass strip_prefix=False.
Example:
$ echo 'DJANGO_SECRET_KEY=bzemAG0xfdMgFrHBT3tJBbiYIoY6EeAj' > .env $ python >>> import os >>> from runenv import load_env >>> load_env(prefix='DJANGO_') >>> 'DJANGO_SECRET_KEY' in os.environ False >>> 'SECRET_KEY' in os.environ True >>> load_env(prefix='DJANGO_', strip_prefix=False) >>> 'DJANGO_SECRET_KEY' in os.environ True
Notice: Environment will not be loaded if command was fired by runenv wrapper until you use force=True parameter
Wrapper runenv sets _RUNENV_WRAPPED=1 variable and load_env does not load variables then.
Example:
$ echo 'DJANGO_SECRET_KEY=bzemAG0xfdMgFrHBT3tJBbiYIoY6EeAj' > .env $ python >>> import os >>> from runenv import load_env >>> os.environ['_RUNENV_WRAPPED'] = '1' >>> load_env() >>> 'DJANGO_SECRET_KEY' in os.environ False >>> load_env(force=True) >>> 'DJANGO_SECRET_KEY' in os.environ True
Django integration
To use load_env with Django, put in manage.py and wsgi.py code:
from runenv import load_env load_env()
Similar projects
https://github.com/jezdez/envdir - runs another program with a modified environment according to files in a specified directory
https://github.com/theskumar/python-dotenv - Reads the key,value pair from .env and adds them to environment variable
History
0.2.1 (2015-06-16)
add strip_prefix option to load_env
0.2.0 (2015-06-16)
add load_env (python api)
0.1.4 (2015-06-15)
Check if file to run exists and is executable
0.1.3 (2015-06-01)
Support for env file comments by ‘#’
0.1.2 (2015-06-01)
Return code from runned command
0.1.1 (2015-05-31)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for runenv-0.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e1d489dfd18014db4ff1a80d5f1e6c651ea8d96e5a3a7299b0a7f8e7b60ea29 |
|
MD5 | 723e488a9653153ad2afc01b3ad91a80 |
|
BLAKE2b-256 | 57d5401039fc0cab9017d0f311942d75dd1bb7f94a9bef646f308e603d4b897b |