跳转到主要内容

daemontools' envdir的Python版本。

项目描述

Linux Build Status Windows Build Status

这是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 (20.5 kB 查看散列)

上传时间: 来源

构建分发

envdir-1.0.1-py2.py3-none-any.whl (13.2 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下支持