Jupyter:如何在新内核中实现图像查看功能

时间:2017-09-08 18:58:43

标签: c++ ipython jupyter cling

我目前正在玩Cling(C ++解释器)和它的jupyter内核,我想使用某种类似于IPython.display的C ++函数在Jupyter笔记本中显示图像。 对此最好的方法是什么?

更新

感谢您的回复,我目前正在深入研究这两个选项,以检查Windows上有哪些稳定版本,并且可能会在下周回来(现在还有很多其他工作),每个都有评论。它

3 个答案:

答案 0 :(得分:2)

该功能需要在内核级别实现,也就是说,如果cling本身不能为您提供逃生舱,那么您可能无法实现。

从技术上讲,当你显示内容时,cling会发送一条display_data消息,其中包含一个mimebundle(mimetype到数据的映射形式),所以你需要挂钩内核本身才能这样做。

我不相信它已经在Cling了,尽管QuantStack人最近在JupyterCon上做了一个演示(视频还没在线),他们在widgets内核中显示了Xeus-Cling

因此我强烈建议您尝试使用xeus-cling,并向那里的开发人员询问(在GitHub上打开一个问题,或者尝试他们响应的Gitter频道)。

答案 1 :(得分:2)

这会做你需要的吗?来自cling / tools / Jupyter / Kernel.cpp:

/// Push MIME stuff to Jupyter. To be called from user code.
///\param contentDict - dictionary of MIME type versus content. E.g.
/// {{"text/html", {"<div></div>", }}
///\returns `false` if the output could not be sent.
bool pushOutput(const std::map<std::string, MIMEDataRef> contentDict) {

答案 2 :(得分:1)

我建议您查看UIPopoverPresentationControllerDelegate内核的丰富mime类型呈现功能。

对于任何类型,您都可以覆盖xeus-cling功能。它通过依赖于参数的查找来获取,您的对象将在Jupyter笔记本中神奇地显示在内。

enter image description here

xeus-cling还支持Jupyter交互式小部件和快速文档。

您可以通过点击GitHub存储库自述文件页面顶部的“启动活页夹”按钮在线试用。