daemontools的envdir的python端口。

envdir的Python项目详细描述


Linux Build StatusWindows Build Status

这是daemontools工具envdir的python端口。它可以在窗户上工作 其他可以运行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的方式 由您自己决定,但可以轻松满足您的配置要求 与其他配置系统集成。envdir只包含后面的文件 全部

关于为什么将配置值存储在 可以在12factor站点上找到环境变量。

注意

对于多行环境变量,此python端口的行为不同。 它不仅能读取文件的第一行,还能读取整个文件。采取 小心大文件!

小费

请随意在https://github.com/jezdez/envdir/issues售票。

变更日志

1.0.0(2018年3月26日)

  • 删除python 2.6、3.2和3.3
  • 添加对Python3.6的显式支持
  • 添加对符号链接的支持
  • 改进了对Windows的支持

0.7(2014年10月8日)

  • 使用execos.execvpe)用子进程替换envdir进程 处理(修复20)。
  • isenvvar()更改为只检查变量名中的=

0.6.1(2013年12月23日)

  • 修复了处理sigterm信号以确保forked的所有子级 进程也被终止。感谢Horst Gutmann的报告 帮助修理它。

0.6(2013年3月12日)

  • 用pytest重写测试。
  • 极大地扩展了python api。
  • 添加了基于sphinx的文档:https://envdir.readthedocs.io/
  • 修复了捕获键盘中断时杀死子进程的问题。
  • 添加了基于PEPS 441和397的独立脚本,与 用于windows的python启动程序。有关更多信息,请参阅安装说明 信息。

0.5(2013年9月22日)

  • 添加了检查提供的路径是否为目录,并在以下情况下引发错误 不是这为daemontools的envdir增加了兼容性。
  • 确保将空值(\0)转换为换行符,就像在daemontools中那样 环境目录。

0.4.1(2013年8月21日)

    固定^ {tt2}$以实际工作于已经存在的环境 变量。用于测试python使用的扩展文档。

0.4(2013年9月8日)

  • 添加了envshell命令,该命令使用环境启动子shell 在给定的envdir中定义。示例:

    $ 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(2013年7月30日)

  • 捕获KeyboardInterrupt异常以不显示envdir的回溯 但是被呼叫的司令部的代表。
  • 允许多行环境变量。感谢霍斯特·古特曼 建议。这与Daemontools的标准有所不同 允许环境变量的第一行BLE文件。

0.2.1(2013年11月7日)

  • 固定python -m envdir
  • 扩展自述文件以更好地描述目的

0.2(2013年10月7日)

  • 增加了从python使用envdir的能力。

0.1(2013年10月7日)

  • 初次发布

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

推荐PyPI第三方库


热门话题
在Eclipse中使用多个调用在一行上打印java   javajackson序列化问题。只有同一实体的第一个对象可以很好地序列化   Java中Deflate函数的等价充气   使用customlitview的java Android actionbar搜索   java“<T>T get()”是什么意思?(它有用吗?)   目标c使用CommonCrypto使用AES256加密,使用OpenSSL或Java解密   java在运行时更新资源文件   fileinputstream在java中访问并将数据写入现有文件   带集群的java Android Mapbox我希望每个功能都有不同的标记图像   java JDK8>JDK10:PKIX路径生成失败:SunCertPathBuilderException:找不到请求目标的有效证书路径   java使用Hk2生成具有指定构造函数参数的实例   为什么这个系统。出来Java中的println()打印到控制台?   java目录和文件名连接不起作用   使用mockito和通配符绘图的java