簡體   English   中英

如何在 jenkins 控制台 output 中獲取 python 打印結果

[英]how to get python print result in jenkins console output

我有一個 Python 腳本打印字符串。 現在,當在 Jenkins 中運行它時,我沒有在 Jenkins 構建控制台 Output 中看到打印的字符串。

無論如何要實現這一目標?

在運行 python 腳本時嘗試使用-u ( unbuffered ) 選項。

python -u my_script.py

從 Jenkins 產生的進程輸出到stdout任何輸出都應該被控制台輸出捕獲。 一個警告是在打印換行符之前不會顯示它,因此請確保您的行已終止。

如果您以某種奇怪的方式啟動 python,使其與 Jenkins 父進程分離,那么我無法幫助您。

我相信您需要做的是flush ,請嘗試:

import sys
sys.stdout.flush()

它應該有幫助。

接受的答案讓我走上了正確的軌道,但是在我的例子中,Jenkins 正在運行的 shell 腳本正在捕獲子 python 腳本中的 output 到一個變量,即a=$(python_script) ,所以它沒有被回顯....

為了解決這個問題,我只需要登錄到 stderr 而不是 stdout,即

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM