如何避免 SCons 与 -j 参数混合输出?
Posted
技术标签:
【中文标题】如何避免 SCons 与 -j 参数混合输出?【英文标题】:How to avoid SCons mixed output with -j parameter? 【发布时间】:2016-07-16 22:36:00 【问题描述】:我正在尝试设置基于 SCons 的构建。
我使用的每个构建器都有多个可以使用sys.stdout.write()
在控制台中写入的操作。
问题是控制台输出在不同作业之间混合。
是否有可用的修复程序?我想在执行后将特定作业的所有控制台输出放在同一个位置。
【问题讨论】:
【参考方案1】:您正试图从多个并行运行的进程中访问相同的资源 (stdout
)...没有简单的解决方法(另请参阅 xargs: losing output when redirecting stdout to a file in parallel mode)。
您可以尝试将每个中间操作的输出写入临时文件,然后最后一个操作将文件中的完整和聚合输出最终写入stdout
。像这样,您在输出中有较大的连续文本块......但是当中间操作通过抛出异常来终止构建时,您也可能会丢失一些信息。那么你可能根本不会得到任何输出......这使得调试变得更加困难。
【讨论】:
以上是关于如何避免 SCons 与 -j 参数混合输出?的主要内容,如果未能解决你的问题,请参考以下文章
如何避免输出到 jupyter notebook 中的可滚动框架?