使用不同env运行程序的包装器
runenv的Python项目详细描述
使用从给定文件加载的修改过的环境变量运行程序的包装器。您可以使用runenv来管理 应用程序设置使用12-factor原则。
您可以对runenv和docker使用env-file参数使用相同的环境文件
- 免费软件:BSD许可证
- 文档:https://runenv.readthedocs.org。
功能
客户端:
- 从给定文件加载环境变量的命令行工具
python api:
- 从文件中加载变量(.env或传递的文件名)
- 仅加载具有给定前缀的变量
- 前缀可以在加载期间剥离
- 检测环境是否由runenvcli加载
- 即使使用了runenvcli,也要强制加载
- 搜索父目录选项,允许在父目录中查找环境文件。
安装
为了安装,请使用pip
$ pip install -U runenv
用法
从shell运行
$ runenv env.development ./manage.py runserver
示例env.developmentfile
BASE_URL=http://127.0.0.1:8000DATABASE_URI=postgres://postgres:password@localhost/dbnameSECRET_KEY=y7W8pbRcuPuAmgTHsJtEpKocb7XPcV0u# email settingsEMAIL_HOST=smtp.mandrillapp.comEMAIL_PORT=587EMAIL_HOST_USER=someuserEMAIL_HOST_PASSWORD=hardpasswordEMAIL_FROM=dev@local.hostEMAIL_USE_TLS=1
python api
load_env(env_file='.env',prefix=none,strip_prefix=true,force=false,search_parent=0)
从给定的env_file`(默认.env)加载环境。
选项:
option | default | description |
---|---|---|
env_file | .env | relative or absolute path to file with environment variables |
prefix | None | prefix to match variables e.g. APP_ |
strip_prefix | True | should the prefix be stripped during loa |
force | False | load env_file, even though runenv CLI command was used |
search_parent | 0 | To what level traverse parents in search of file |
如果提供了prefix选项,则只会将以该选项开头的变量加载到环境中,并将其键从该前缀中去掉。要保留前缀,可以将strip_prefix设置为False。
示例
$echo'APP_SECRET_KEY=bzemAG0xfdMgFrHBT3tJBbiYIoY6EeAj' > .env
$python>>>importos>>>fromrunenvimportload_env>>>load_env(prefix='APP_')>>>'APP_SECRET_KEY'inos.environFalse>>>'SECRET_KEY'inos.environTrue>>>load_env(prefix='APP_',strip_prefix=False)>>>'APP_SECRET_KEY'inos.environTrue
notice:如果命令是由runenv包装器触发的,则不会加载环境,除非将force参数设置为true
load_env在使用包装器runenv时不加载变量。同时_RUNENV_WRAPPED设置为1
示例
$echo'APP_SECRET_KEY=bzemAG0xfdMgFrHBT3tJBbiYIoY6EeAj' > .env
$python>>>importos>>>fromrunenvimportload_env>>>os.environ['_RUNENV_WRAPPED']='1'>>>load_env()>>>'APP_SECRET_KEY'inos.environFalse>>>load_env(force=True)>>>'APP_SECRET_KEY'inos.environTrue
类似项目
- https://github.com/jezdez/envdir-根据指定目录中的文件运行另一个环境已修改的程序
- https://github.com/theskumar/python-dotenv-从.env读取键和值对,并将它们添加到环境变量中
历史
1.0.1(2017-02-03)
- 修复包描述语法
1.0.0(2017-02-03)
- 已将版本更改为1.0.0
0.4.0(2016-08-08)
- 添加对“搜索父项”选项的支持
0.3.1(2016-06-21)
- 添加对引用值的支持
0.3.0(2016-02-14)
- 将开发状态更改为生产/稳定状态
0.2.5(2015-11-30)
- 不要将可执行文件作为绝对路径查找
0.2.4(2015-07-06)
LoopyEnv如果Env文件不存在
0.2.3(2015-06-26)
- 支持从路径运行程序
0.2.2(2015-06-16)
- 修复与python3的兼容性
0.2.1(2015-06-16)
- 将strip_prefix选项添加到加载环境
0.2.0(2015-06-16)
- 添加加载环境(python api)
0.1.4(2015-06-15)
- 检查文件是否存在,是否可执行
0.1.3(2015-06-01)
- 通过“”支持env文件注释
0.1.2(2015-06-01)
- 从runned命令返回代码
0.1.1(2015-05-31)
- pypi上的第一个版本。