python 如何获取jupyter内核shell的stdout?

lkaoscv7  于 2023-05-05  发布在  Python
关注(0)|答案(1)|浏览(154)

我想知道如何获取Jupyter内核的stdout,它写在内核运行的shell上,而不是输出到浏览器的stdout。sys.stdout仅给出后者,即,例如。<ipykernel.iostream.OutStream at 0x17d85a28880>

zkure5ic

zkure5ic1#

简短回答:内核具有其 Package 器的sys.stdout。这里是ipython控制台。
长回答:先来个小类比:你可以想象自己是一个处理计算的大脑这是内核。虽然,内核,大脑,并不按照自己的意愿执行它们,但它需要认知,一个界面,来接收命令并传达答案:这是控制台。
IPython将REPL(读取、求值、打印、循环)分为两部分。内核是评估部分,控制台处理其余部分。stdout是写入显示的对象。如果使用ipython,则使用IPython的前端。这是另一个前端的相同内核:笔记本您可以查看IPython文档中的说明(以及该解释的另一个版本)。
所以,我们附加一个前端到内核,内核不关心显示的细节(IPython,notebook等)。前端从内核接收消息。(JSON消息有一种格式ZMQ)。
重要编辑:您可以阅读ipykernel.iostdout的代码。这是一个编写器,用于通过JSON将消息交换到前端。更准确地说,内核有一个sys.stdout,它只是一个在任何前端打印消息的编写器。

相关问题