如何在 Bokeh 仪表板中显示和更新打印语句列表?

How can I show and update a list of print statements in a Bokeh dashboard?

有没有办法创建散景仪表板的一部分,显示 python 会话的控制台输出?

我正在使用 bokeh 创建一个前端仪表板,它运行一个可能需要一段时间并做很多事情的过程。我想要一个部分来显示沿途执行的一些打印语句。理想情况下,我希望有一个可以直接在仪表板内显示输出的小部件类型对象。

只是一个简单的例子,用 os 消息列表的内容更新 Div 元素(使用 html 代码)。我认为您可以根据自己的需要进行调整:

from bokeh.layouts import column
from bokeh.io import curdoc
from bokeh.models import Button
from bokeh.models.widgets import Div

div = Div(
    text='',
    width=200,
    height=200
)

msg_list = []

def update_div():
    msg_num = len(msg_list)
    msg_list.append('{}: New message'.format(msg_num))
    m = ''
    for msg in msg_list:
        m += '<li>{}</li>'.format(msg)
    div.text = '<ul>{}</ul>'.format(m)

bt = Button(
    label="Update div",
    button_type="success",
    width=50
)

bt.on_click(update_div)

curdoc().add_root(
    column(children=[bt, div])
)