在HTML浏览器和控制台中区分iPython

时间:2017-02-06 19:55:44

标签: ipython jupyter-notebook jupyter

iPython既可以在控制台中以交互模式运行,也可以作为具有更丰富功能的Jupyter HTML笔记本的一部分运行,例如:能够呈现HTML组件......等等。

我正在编写一个Jupyter扩展,它公开了一个返回对象列表的API,我希望这个API在浏览器中返回呈现的HTML,否则返回基于文本的控制台的字符串列表。有没有办法告诉当前的iPython环境(纯文本或HTML)?

1 个答案:

答案 0 :(得分:0)

Messaging and Jupyter Notebooks

https://jupyter-client.readthedocs.io/en/latest/messaging.html#messages-on-the-iopub-pub-sub-channel

  

此数据发布给所有前端。每条消息都可以有多个数据表示;由前端决定使用哪种以及如何使用。单个消息应包含相同信息的所有可能表示。每个表示都应该是一个JSON'able数据结构,并且应该是一个有效的MIME类型。

看起来您应该发送HTML和字符串列表,每个字符串都标记为正确的MIME类型,并让显示前端选择要显示的内容。

这两个链接都提到了一个Comm对象,它似乎在内核和前端之间建立了一对一的链接。 IOPub频道是一对多。