gpt4 book ai didi

Python 调用 makefile 编译并捕获 make 的输出

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:41 25 4
gpt4 key购买 nike

Jenkins 中的一个作业调用了我的 python 脚本,我想在其中调用 make 来编译我的 UT 代码,如果编译失败则引发 sys.exit(1)出现类似“make: *** [ ] Error 1”的错误。

我还需要实时打印输出。

这是我的 python 脚本:

make_process = subprocess.Popen("make clean all;", shell=True, stdout=subprocess.PIPE, stderr=sys.stdout.fileno())
while True:
line = make_process.stdout.readline()
if not line:break
print line, #output to console in time
sys.stdout.flush()

但是我如何捕获 make 错误并让这个 python 脚本失败?

注意:

更新:原来是makefile的问题。请参阅对已接受答案的评论。但是对于这道python题,pentadecagon给出了正确答案。

最佳答案

您可以通过以下方式检查make 过程的返回值

make_process.poll()

如果进程仍在运行,则返回“None”,如果已完成,则返回错误代码。如果您只是希望输出最终出现在控制台上,则无需手动执行此操作无论如何,输出都会进入控制台,并且可以这样做:

make_process = subprocess.Popen("make clean all", stderr=subprocess.STDOUT)
if make_process.wait() != 0:
something_went_wrong();

关于Python 调用 makefile 编译并捕获 make 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com