Jupyter:嵌入实时交互式小部件

时间:2016-09-05 16:13:10

标签: python-3.x ipython jupyter jupyter-notebook ipywidgets

根据Jupyter博客here,现在可以在静态网页中嵌入交互式小部件:

  

现在,通过插入包含序列化窗口小部件状态的html片段,可以将实时交互式窗口小部件嵌入到静态网页或博客中。这也适用于自定义小部件库。请参阅http://jupyter.org/embed-jupyter-widgets.html

当我打开上面的例子时,在firefox或chrome中,我得到了交互式小部件!

但是,如果我使用相同的python代码创建一个新笔记本,将笔记本保存为html,然后复制粘贴可嵌入的HTML代码段以呈现交互式小部件,它不起作用。我充其量只获得了一个小部件状态的图像,但没有任何交互式。

是否有人设法使用交互式小部件复制HTML页面?有什么东西我不见了吗?

2 个答案:

答案 0 :(得分:2)

我们为此制作了Kyso。您可以使用kyso.io将jupyter笔记本嵌入到网站中,只要BokehJS仪表板支持小部件,笔记本就会是交互式的。这是example

PS。 (免责声明 - 我是kyso的创始人)

答案 1 :(得分:-1)

问了问题已经很久了,但是今天我会用技术来回答。

要嵌入交互式窗口小部件,您需要一个后端,但是有一个名为MyBinder的项目可以免费用作云中的后端。这被用作名为NBinteract的库的基础,该库可以在单个HTML网页中转换带有交互式小部件的任何笔记本。

这些HTML从CDN加载脚本,并自行管理与MyBinder的所有交互。

他们的网站上有一些示例,我还发布了post in my blog,在其中我将这种技术与Dockerfile,ffmpeg,matplotlib,动画和交互式小部件一起使用。因此,我认为这种方法非常健壮和灵活。

官方文档说您需要一个存储库,但我可以设法改用gist,并在主存储库中使用submited an issue来解释如何做。