11 个版本
0.3.0 | 2023 年 3 月 5 日 |
---|---|
0.2.6 | 2023 年 3 月 5 日 |
0.2.5 | 2020 年 7 月 5 日 |
0.2.4 | 2020 年 4 月 27 日 |
0.1.2 | 2020 年 4 月 26 日 |
#314 在 配置
每月 46 次下载
6KB
ReadEnv
一个简单的程序,用于读取 .env
文件并使用它来运行指定的命令。
不再手动加载环境变量或污染您的解释器配置文件。
工作原理
- 读取当前环境变量
- 在当前目录或父目录中读取
.env
文件 - 将读取自
.env
文件的环境变量扩展到当前环境变量 - 使用生成的环境变量启动
<COMMAND>
- 用启动的进程替换当前进程
安装
cargo install readenv
使用方法
-
在当前目录或父目录中创建
.env
文件,使用<KEY>=<VALUE>
结构 -
运行应用程序
renv <COMMAND>
运行期间,<COMMAND>
的行为与直接执行完全相同,包括环境变量、stdin、stdout、stderr、管道支持以及信号处理。
.env 格式
.env
文件的支持由 dotenv 库提供。有关格式,请参阅其 文档。
配方
Django
要运行一个 Django 项目,需要一个设置文件。一种方法是为每种环境(例如,开发和生产)拥有不同的设置文件。
最简单的方法是为设置模块的名称定义环境变量 DJANGO_SETTINGS_MODULE
。
现在创建 .env
文件(给定的设置模块是 local_settings
)
echo 'DJANGO_SETTINGS_MODULE=local_settings' >> .env
现在使用一条命令运行 Django 服务器
renv django-admin.py runserver
Virtualenv
Virtualenv 是一个用于隔离项目 Python 依赖项的好工具。
要切换到指定的虚拟环境,需要使用以下命令:. <VENV>/bin/activate
。
让我们创建.env
文件(给定的虚拟环境目录为.venv
)
echo "VIRTUAL_ENV=$PWD/.venv" >> .env
echo "PATH=$PWD/.venv/bin:\${PATH}" >> .env
现在检查Python解释器
renv which python
结果应该是
$PWD/.venv/bin/python
尝试pip
renv pip freeze
结果应该是您虚拟环境中安装的依赖项列表。
设计考虑因素
12因子应用方法非常棒,但可能会有些枯燥。一个简单的工具,可以自动处理环境变量,会很有帮助。
这个工具应该是任何应用的即插即用替代品,因此它
- 必须支持stdin、stdout和stderr
- 可以在管道中使用
- 必须以相同的方式处理信号(例如
SIGTERM
或SIGKILL
)
此外,以下几点也很理想
- 应用程序体积小
- 内存占用低
- 不依赖于使用的shell
- 安全
解决方案
- 生成二进制程序
- 使用Rust
- 用执行命令替换其进程(例如BASH中的
exec
)
致敬
依赖项
~72-285KB