使用不同env运行程序的包装器

runenv的Python项目详细描述


https://img.shields.io/travis/onjin/runenv.svghttps://img.shields.io/pypi/v/runenv.svghttps://img.shields.io/badge/license-New%20BSD-blue.svghttps://img.shields.io/pypi/dm/runenv.svg

使用从给定文件加载的修改过的环境变量运行程序的包装器。您可以使用runenv来管理 应用程序设置使用12-factor原则。

您可以对runenvdocker使用env-file参数使用相同的环境文件

功能

客户端:

  • 从给定文件加载环境变量的命令行工具

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)加载环境。

选项:

optiondefaultdescription
env_file.envrelative or absolute path to file with environment variables
prefixNoneprefix to match variables e.g. APP_
strip_prefixTrueshould the prefix be stripped during loa
forceFalseload env_file, even though runenv CLI command was used
search_parent0To 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

django/烧瓶集成

若要将^{TT5}$与DjangoFlask一起使用,请将以下内容放入^{TT10}$和^{TT11}$

fromrunenvimportload_envload_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上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java向嵌入式Jetty添加多个端点   java如何在JAXWS处理程序中区分请求和响应?   使用Scenebuilder for JAVAFx的登录应用程序的java MVC体系结构   java对话框将不显示   Windows 7上的Java系统变量   java删除动态添加的面板   java将Javadoc嵌入到HTML网站中   带有URL编码数据的java Spring RestTemplate POST请求   java JAXR只运行一次函数   HttpClient缺少java依赖项   java深层反射比较   基于javarmi和CORBA的分布式计算   如何使用当前数据库时间从Java更新MongoDB?   java通过光标保存数据调试时显示错误数据