如何在jenkins控制台输出中获取python打印结果

nxagd54h  于 2023-01-25  发布在  Jenkins
关注(0)|答案(4)|浏览(419)

我有一个打印字符串的Python脚本。现在当在Jenkins中运行它时,我没有在Jenkins Builds的控制台输出中看到打印的字符串。
无论如何要做到这一点?

9jyewag0

9jyewag01#

运行python脚本时,尝试使用-uunbuffered)选项。
python -u my_script.py

7hiiyaii

7hiiyaii2#

从Jenkins派生的进程到stdout的任何输出都应该被Console Output捕获。一个警告是,只有打印了换行符,才会显示它,所以请确保行被终止。
如果您以某种奇怪的方式启动python,使其与Jenkins父进程分离,那么我就无法帮助您。

unftdfkk

unftdfkk3#

我相信你需要做的是一个flush,尝试:

import sys
sys.stdout.flush()

应该会有帮助。

u2nhd7ah

u2nhd7ah4#

这个公认的答案让我找到了正确的方向,但是在我的例子中,Jenkins运行的shell脚本将subshell中的python脚本的输出捕获到一个变量(即a=$(python_script)),因此它没有被回显......
为了解决这个问题,我只需要登录到stderr而不是stdout,即

import sys
sys.stderr.write("my info\n")
sys.stdout.flush()

相关问题