0

我想知道 jupyter_client 是否能够以某种方式将发送到执行函数的代码作为 HTML 返回?

我也想知道我是否可以对标准输出和标准错误以及降价做同样的事情?

如果 jupyter_client 不能做到这一点,是否有一个 jupyter 库可以做到这一点?

4

1 回答 1

1

这里调整解决方案可能会有所帮助。这种适配采用 1+1 or 的请求,并使用IPython 的显示模块msg_id=c.execute('1+1')将 html 格式的结果作为粗体红色文本返回。内核信息状态已被注释掉但留作参考。display(HTML('<div style="color:Red;"><b>' + res + '</b></div>'))

from subprocess import PIPE
from jupyter_client import KernelManager
from IPython.display import display, HTML

from queue import Empty         
km = KernelManager(kernel_name='python3')
km.start_kernel()
# print(km.is_alive())
try:
    c = km.client()
    msg_id=c.execute('1+1')
    state='busy'
    data={}
    while state!='idle' and c.is_alive():
        try:
            msg=c.get_iopub_msg(timeout=1)
            if not 'content' in msg: continue
            content = msg['content']
            if 'data' in content:
                data=content['data']
            if 'execution_state' in content:
                state=content['execution_state']
        except Empty:
            pass
    res = data['text/plain']
#     print(data)
    display(HTML('<div style="color:Red;"><b>' + res + '</b></div>'))
except KeyboardInterrupt:
    pass
finally:
    km.shutdown_kernel()
#     print(km.is_alive())

另请参阅此处了解更多信息。

于 2020-05-11T21:44:47.777 回答