从支持的文件打印环境变量。
print-env的Python项目详细描述
打印环境
从支持的文件打印环境变量。
这源于以下项目:
- 使用环境变量作为配置的主界面
- 使用源代码管理忽略的文件为本地开发等方案存储环境变量
安装
$ 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"}}