[英]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.