跳转到主要内容

A zc.buildout扩展,用于解决使用自己构建的python的鸡生蛋问题

项目描述

使用buildout提供的Python重新运行buildout

Buildout 2.0不再支持在单个buildout中使用多个Python版本。此扩展通过首先构建指定的Python部分及其依赖项,然后使用可执行文件重新调用buildout,使其成为可能使用‘另一个单一’版本的Python。

用法

需要一个用于构建Python的部分。您需要通过在buildout部分中指定python参数来指定它,这与buildout 1.x相同。Python部分必须提供可执行选项,该选项给出Python可执行文件的路径。

并在buildout部分中添加slapos.rebootstrap到extensions参数。

使用任何Python来引导和运行buildout。如果此扩展检测到用于运行buildout的sys.executable与python部分中提供的可执行文件不同,它将尝试找到此可执行文件。如果它不存在,它将安装此部分,然后使用新的Python可执行文件重新安装buildout。后续的buildout运行将继续使用新的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}

引导和运行此buildout后,它将打印

使用python /path/to/buildout/parts/slapospython/bin/python运行

运行测试

此包的测试可以像以下这样运行

$ python setup.py test

请注意,需要干净的Python环境 - 最好的是buildout或virtualenv提供的,不带site包。

变更

4.7 (2024-05-22)

  • 停止使用已弃用的setuptools.easy_install

  • 导入时检查zc.buildout版本

  • 统一rebootstrap机制

4.6 (2024-03-26)

  • 添加对slapos.buildout >= 3.0.1+slapos001的支持

  • 支持从tar.gz安装setuptools

  • 删除无效的zc.buildout>=2.7.1+slapos001要求

  • 删除zc.buildout的无用monkey-patch

4.5 (2020-04-22)

  • 添加对slapos.buildout >= 2.7.1+slapos004的支持

  • 在rebootstrap时重置环境变量

4.4 (2020-02-17)

  • 添加对Python >= 3.6的支持

4.3 (2019-12-10)

  • 更新zc.buildout依赖关系为2.7.1+slapos*

4.2 (2019-10-10)

  • 支持由不需要安装的部分提供的Python。这修复了从外部slapos共享部分安装的slapos软件发布版的安装问题。

4.1 (2017-06-06)

  • 修复MANIFEST.in:一些文件丢失。

4.0 (2017-06-05)

完全重实现

  • 完全就地工作,即使是切换到不同的Python版本。

  • 更新bin/buildout,以便在后续的buildout运行中立即使用所需的Python。

对于SlapOS,第二点是必需的,以确保使用构建的Python进行实例化。

3.10 (2017-03-15)

  • 删除zc.buildout版本锁定,以防止版本更改时的循环。

3.9 (2017-03-15)

  • 在reboot()中删除zc.buildout版本锁定,以防止版本更改时的循环。

3.8 (2017-03-13)

  • 仅在设置buildout:rebootstrap-directory时使用专用rebootstrap目录。

3.7 (2016-08-18)

  • 保留bin-directory,以便在适当的位置生成bin/buildout。

3.6 (2016-06-30)

  • 为使用slapos.package的用例添加更多参数。

3.5 (2016-06-10)

  • 在调用新的buildout过程以构建rebootstrap目录时,明确指定Python解释器和配置文件。

3.4 (2016-06-10)

  • 为构建rebootstrap Python使用专用的buildout目录。3.2中的更改是错误的,因为它导致rebootstrap和为不同版本的Python构建的无限循环。

3.3 (2016-01-20)

  • 在_uninstall_part()中忽略MissingSection异常。

3.2 (2015-11-10)

  • 支持zc.buildout >= 2.0.0。

  • 与正常buildout使用相同的部分目录,这样我们可以更快地构建,并使代码更简单。

  • Python部分现在由buildout部分的python参数指定。

  • 在运行Python部分时自动重启原始Python的功能已被移除。

3.1 (2011-06-24)

  • 在rebootstrap部分的rebootstrap中支持eggs参数,以便为rebootstrapped buildout添加额外的eggs。

3.0 (2011-05-27)

  • 从slapos.tool.rebootstrap 2.4重命名。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

slapos.rebootstrap-4.7.tar.gz (10.4 kB 查看散列值)

上传时间

由以下支持