一个zc.buildout扩展来解决使用python的鸡和蛋问题
slapos.rebootstrap的Python项目详细描述
使用buildout提供的python重新运行buildout
buildout 2.0不再支持在 单体建筑。这个扩展使我们可以使用 通过构建指定的python部分及其 依赖项,然后用可执行文件重新生成。
使用量
构建python需要一个部分。您需要通过python指定它 buildout部分中的参数,与buildout 1.x相同。 节必须提供可执行选项,该选项提供指向python的路径 可执行。
并将slapos.rebootstrap添加到buildout部分的extensions参数中。
使用任何python引导并运行buildout。如果这个分机 检测到用于运行构建的sys.executable不同于 在python部分提供的可执行文件中,它将试图找到 可执行。如果它不存在,它将安装本节。 然后使用新的python可执行文件重新安装buildout。后期扩建 run将继续使用新的python。
示例配置文件和调用
[buildout] extensions = slapos.rebootstrap python = slapospython parts = realrun [slapospython] recipe = plone.recipe.command stop-on-error = true bin_dir = ${buildout:parts-directory}/${:_buildout_section_name_}/bin executable = ${:bin_dir}/python command = mkdir -p ${:bin_dir} && cp -f /usr/bin/python ${:executable} [realrun] recipe = plone.recipe.command command = echo Running with python ${buildout:executable} update-command = ${:command}
启动并运行此构建后,它将打印:
使用python/path/to/buildout/parts/slapospython/bin/python运行
运行测试
此软件包的测试可以简单地运行:
$ python setup.py test
请记住,干净的python环境是必需的,最好的是 由buildout或virtualenv提供,不带站点包。
更改
4.1(2017-06-06)
- 修复manifest.in:缺少一些文件。
4.0(2017-06-05)
完成重新实施:
- 工作完全到位,甚至可以切换到不同版本的python。
- 更新bin/buildout以立即在随后的 构建运行。
对于slapos,第二点需要完成实例关联 使用构建的python。
3.10(2017-03-15)
- 删除zc.buildout版本固定以防止在版本为 改变。
3.9(2017-03-15)
- 在reboot()中删除zc.buildout版本固定以防止循环进入 版本更改的情况。
3.8(2017-03-13)
- 只有在以下情况下才使用专用的重新引导目录 buildout:已设置rebootstrap目录。
3.7(2016-08-18)
- 保留bin目录以便在 合适的位置。
3.6(2016-06-30)
- 为slapos.package的用例添加更多参数。
3.5(2016-06-10)
- 在以下情况下显式指定python解释器和配置文件 调用新的构建过程来构建重新引导目录。
3.4(2016-06-10)
- 使用专用的构建目录来构建重新引导 Python。3.2中的更改是错误的,因为它导致无限循环 为不同版本的python重新引导和构建。
3.3(2016-01-20)
- 忽略卸载部分()中的MissingSection异常。
3.2(2015-11-10)
- 支持zc.buildout>;=2.0.0。
- 使用与正常构建相同的部件目录,以便我们可以 构建速度更快,代码也更简单。
- python部分现在由构建中的python参数指定 区域
- 运行python时用原始python自动重新启动 零件已拆下。
3.1(2011-06-24)
- 在rebootstrap部分支持eggs参数以添加额外的 重新启动的鸡蛋捆绑式建筑。
3.0(2011-05-27)
- 从slapos.tool.rebootstrap 2.4重命名