从支持的文件打印环境变量。

print-env的Python项目详细描述


打印环境

Build StatusPyPI version

从支持的文件打印环境变量。

这源于以下项目:

  • 使用环境变量作为配置的主界面
  • 使用源代码管理忽略的文件为本地开发等方案存储环境变量

安装

$ pipenv install print-env
# or
$ pip install print-env

用法

假设一个.env文件包含以下内容:

# .envFLASK_APP=app.py
FLASK_DEBUG=1SQL_URI=<SQL connection string that may contain credentials>
# and more...

然后简单地

$ print-env
FLASK_APP=app.py FLASK_DEBUG=1SQL_URI=<redacted> # and more...

上面将打印存储在.env、或env.yml、或env.json(大致按此顺序尝试)中的环境变量。您也可以专门指定文件:

$ print-env /path/to/env/file.yml

脚本将尝试根据给定的扩展名分析文件。请注意,任何不属于yaml或json类型的文件扩展名都会尝试作为dotenv文件。

实际上,您可以指定一系列文件注意,如果出现重复,则以最后一个文件为准,例如:

# content of base.envLOG_LVL=warning
API_TOKEN=aabbcc
# content of dev.envLOG_LVL=debug
$ print-env base.env dev.env
LOG_LVL=debug API_TOKEN=aabbcc

另一个常见的情况是,当外部文件用于在deploy time处提供环境变量时,例如,当与serverless framework一起使用时,serverless.yml可能看起来像:

service:env-varspackage:exclude:-node_modules/**-'*env.yml'-Pipefile-Pipfile.lockfunctions:test:# test.py - handler()handler:test.handler# sourcing env vars from ./env.ymlenvironment:${file(./env.yml):}

对于本地测试运行,您可以利用print-env来重用相同的env.yml

$ env $(print-env) python test.py  # omitted file path since env.yml is on the default try-list

类似地,print-env可以用于build time配置。例如,一个虚构的客户端项目有一个package.json,看起来像:

{"name":"TestApp","version":"1.0.1","scripts":{"build":"env $(print-env local-env.json) parcel build index.html","build:dev":"env $(print-env dev-env.json) parcel build index.html","build:prod":"env $(print-env prod-env.json) parcel build index.html"}}

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

推荐PyPI第三方库


热门话题
java在返回类类型时取消选中转换   java使用JSR303和spring的验证器的组合为spring引导端点实现自定义验证逻辑   java如何使用struts2预填充复选框列表   参数数目可变的java重写方法   java这种情况下正确的日期格式是什么?   java使用带有@RequestParam的springboot内部@Controller来提供搜索方法   室内导航和路径发现中的java图遍历和过滤   java在素数面中的另一个bean中获取bean值   java在发送电子邮件时更改文本(字符串)的颜色   在Java中使用Android文本视图时出错   java Resteasy javax如何将contenttype*/*映射到服务器端的application/json?   java如何使用ApacheShiro在会话过期时重新登录?   java是否有正当理由隐藏静态方法?   java如何在javax中覆盖/插入自定义文本。打印文档(pdf、doc、docx…)?