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