daemontools' envdir的Python版本。
项目描述
这是daemontools工具envdir的Python版本。它适用于Windows和其他可以运行Python的系统。它经过了良好的测试,不需要安装编译器。
envdir根据指定目录中的文件,以修改后的环境运行另一个程序。
例如,想象一下您想在服务器上运行某个软件,但不想将某些配置变量嵌入到程序源代码中。解决此问题的常见模式是使用环境变量将配置与代码分离。
envdir 允许您一次设置一系列环境变量,以简化复杂环境的维护,例如,您可能有多个配置变量集合,这取决于您运行程序的基础设施(例如,Windows 与 Linux、预发布与生产、旧系统与新系统等)。
让我们看一下一个典型的 envdir。
$ tree envs/prod/
envs/prod/
├── DJANGO_SETTINGS_MODULE
├── MYSITE_DEBUG
├── MYSITE_DEPLOY_DIR
├── MYSITE_SECRET_KEY
└── PYTHONSTARTUP
0 directories, 3 files
$ cat envs/prod/DJANGO_SETTINGS_MODULE
mysite.settings
$
如您所见,每个文件都有一个大写的名称,并包含运行程序时设置的环境变量的值。要使用它,只需在程序调用之前加上 envdir 即可。
$ envdir envs/prod/ python manage.py runserver
就是这样,没有更多也没有更少。您如何构建您的 envdir 由您自己决定,但可以轻松地满足您的配置要求并与其他配置系统集成。envdirs 包含的只是文件。
关于为什么将配置值存储在环境变量中很好的有趣总结可以在 12factor 网站上找到。
变更日志
1.0.0 (26/03/2018)
删除 python 2.6、3.2 和 3.3
添加对 python 3.6 的显式支持
添加对符号链接的支持
改进了对 Windows 的支持
0.7 (08/10/2014)
使用 exec (os.execvpe) 用子进程替换 envdir 进程(修复 #20)。
将 isenvvar() 更改为只检查 var 名称中的 =。
0.6.1 (12/23/2013)
修复了处理 SIGTERM 信号的问题,以确保所有已派生的进程子代都被杀死。感谢 Horst Gutmann 提供报告和帮助修复。
0.6 (12/03/2013)
使用 pytest 重写了测试。
大大扩展了 Python API。
添加了基于 Sphinx 的文档:[https://envdir.readthedocs.io/](https://envdir.readthedocs.io/)
修复了在捕获键盘中断时杀死子进程的问题。
添加了基于 PEPs 441 和 397 的独立脚本,兼容 Python Launcher for Windows。有关更多信息,请参阅安装说明。
0.5 (09/22/2013)
添加了对提供的路径是否为目录的检查,如果不是目录则抛出错误。这增加了与 daemontools’ envdir 的兼容性。
确保将空字符(\0)转换为换行符,就像 daemontools’ envdir 所做的那样。
0.4.1 (08/21/2013)
修复了 envdir.read() 以使其能够与已经存在的环境变量一起工作。扩展了文档以测试 Python 使用。
0.4 (08/09/2013)
添加了 envshell 命令,该命令使用在给定的 envdir 中定义的环境启动子 shell。示例
$ envshell ~/mysite/envs/prod/ Launching envshell for /home/jezdez/mysite/envs/prod. Type 'exit' or 'Ctrl+D' to return. $ python manage.py runserver ..
0.3 (07/30/2013)
捕获 KeyboardInterrupt 异常,以便不显示来自 envdir 的跟踪信息,而是显示调用命令的响应。
允许多行环境变量。感谢 Horst Gutmann 的建议。这与 daemontools 的标准不同,后者只允许环境变量文件的第一个行。
0.2.1 (07/11/2013)
修复 python -m envdir
扩展 README 以更好地描述其目的。
0.2 (07/10/2013)
添加了从 Python 使用 envdir 的能力。
0.1 (07/10/2013)
初始发布。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
envdir-1.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ede06bacc4da4a74bff86b0aca7a9c174f60750ff8ff78e2dc6b183df02a566b |
|
MD5 | 241867305eb259360fad31438f608077 |
|
BLAKE2b-256 | 26b3583f3b1481f8af69ca01ba15079435152e9402543a3f8423ead98879c5fa |
envdir-1.0.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 54ed3f965fa33f433f989a2bfb26bcd04035f27d105217c33a72783971224d0d |
|
MD5 | 2033336d8d2bb1709628419c6aa9e8a8 |
|
BLAKE2b-256 | 75dd817dc77edf4807fc2c29e28046ab83aa7ccfe27e79d24ca37d7aaa1e36bb |