Jupyter:如何在新内核中实现图像查看功能
Jupyter: how to implement image viewing functionality in new kernel
我目前正在使用 Cling(C++ 解释器),它是 jupyter 内核,我想使用类似于 IPython.display 的某种 C++ 函数在 Jupyter notebook 中显示图像。
最好的方法是什么?
更新
感谢您的回复,我目前正在深入研究这两个选项,以检查 Windows 上有什么稳定的版本,并且可能会在下周回来(现在手头还有很多其他工作)对每个评论。
该功能需要在内核级别实现,也就是说,如果 cling 本身没有给您执行此操作的逃生通道,您很可能做不到。
从技术上讲,当你显示一些东西时,cling 会发送一个 display_data
消息,其中包含一个 mimebundle(一种映射形式 mimetype 到数据),所以你需要挂钩到内核本身来做所以。
虽然 QuantStack folks did a demo recently at JupyterCon (video not online yet) where they showed widgets in their Xeus-Cling 内核,但我不认为它在 Cling 中。
因此,我强烈建议您尝试 xeus-cling,并询问那里的开发人员(在 GitHub 上打开一个问题,或者尝试他们响应的 Gitter 频道)。
这会满足您的需求吗?来自 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) {
我建议您查看 xeus-cling
内核的丰富 MIME 类型呈现功能。
对于任何类型,您都可以覆盖 mime_bundle_repr
函数。它是通过 argument-dependent 查找拾取的,您的对象将神奇地内联显示在 Jupyter 笔记本中。
xeus-cling 还支持 Jupyter 交互式小部件和快速文档。
您可以通过单击 GitHub 存储库的自述文件页面顶部的 "Launch Binder" 按钮在线在线试用。
我目前正在使用 Cling(C++ 解释器),它是 jupyter 内核,我想使用类似于 IPython.display 的某种 C++ 函数在 Jupyter notebook 中显示图像。 最好的方法是什么?
更新
感谢您的回复,我目前正在深入研究这两个选项,以检查 Windows 上有什么稳定的版本,并且可能会在下周回来(现在手头还有很多其他工作)对每个评论。
该功能需要在内核级别实现,也就是说,如果 cling 本身没有给您执行此操作的逃生通道,您很可能做不到。
从技术上讲,当你显示一些东西时,cling 会发送一个 display_data
消息,其中包含一个 mimebundle(一种映射形式 mimetype 到数据),所以你需要挂钩到内核本身来做所以。
虽然 QuantStack folks did a demo recently at JupyterCon (video not online yet) where they showed widgets in their Xeus-Cling 内核,但我不认为它在 Cling 中。
因此,我强烈建议您尝试 xeus-cling,并询问那里的开发人员(在 GitHub 上打开一个问题,或者尝试他们响应的 Gitter 频道)。
这会满足您的需求吗?来自 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) {
我建议您查看 xeus-cling
内核的丰富 MIME 类型呈现功能。
对于任何类型,您都可以覆盖 mime_bundle_repr
函数。它是通过 argument-dependent 查找拾取的,您的对象将神奇地内联显示在 Jupyter 笔记本中。
xeus-cling 还支持 Jupyter 交互式小部件和快速文档。
您可以通过单击 GitHub 存储库的自述文件页面顶部的 "Launch Binder" 按钮在线在线试用。