【问题标题】:Jupyter: how to implement image viewing functionality in new kernelJupyter:如何在新内核中实现图像查看功能
【发布时间】:2017-09-08 18:58:42
【问题描述】:

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

更新

感谢您的回复,我目前正在研究这两个选项,以检查 Windows 上的版本多少比较稳定,并且可能会在下周返回(目前还有很多其他工作正在进行),每个选项都有 cmets。

【问题讨论】:

    标签: c++ ipython jupyter cling


    【解决方案1】:

    该功能需要在内核级别实现,也就是说,如果 cling 本身没有给你逃生舱,你可能做不到。

    从技术上讲,当您显示某些内容时,cling 将发送一个display_data 消息,其中包含一个 mimebundle(一种映射表单 mimetype 到数据),因此您需要挂钩到内核本身来执行此操作。

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

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

    【讨论】:

      【解决方案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) {
      

      【讨论】:

        【解决方案3】:

        我建议您查看xeus-cling 内核的丰富的 mime 类型渲染功能。

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

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

        您可以通过单击 GitHub 存储库的 README 页面顶部的“启动 Binder”按钮来在线试用它。

        【讨论】:

          猜你喜欢
          • 2013-06-02
          • 2011-10-24
          • 2021-06-02
          • 2017-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多