我在 SCons 中创建了一个特殊的构建器,用于从需求文件在 Python 中创建 virtualenv。如果给定一个标志--virtualenv
,我想设置一个名为的环境变量HOSTPYTHON
,它会更改 scons 用来构建和测试我的其余代码的 Python。
这意味着我需要 virtualenv 构建器始终在所有其他构建器之前运行。我怎样才能做到这一点?
我在 SCons 中创建了一个特殊的构建器,用于从需求文件在 Python 中创建 virtualenv。如果给定一个标志--virtualenv
,我想设置一个名为的环境变量HOSTPYTHON
,它会更改 scons 用来构建和测试我的其余代码的 Python。
这意味着我需要 virtualenv 构建器始终在所有其他构建器之前运行。我怎样才能做到这一点?
与其将 定义virtualenv
为构建器,不如考虑将其设为简单的 Python 函数并使用 SCons Execute()函数运行它。Execute 将始终在任何构建器之前执行。
我不知道如何在构建过程中更改 SCons 使用的 Python 版本,因此您可能必须运行 SCons 两次。第一次,检查--virtualenv
命令行参数,Execute()
如果存在则调用(或始终调用 Execute() 并在内部检查 cmd 行),然后Exit()
.