17

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

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

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

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

有没有人设法用交互式小部件复制 HTML 页面?有什么我想念的吗?

4

2 回答 2

6

我们正是为此而制作了 Kyso。您可以使用 kyso.io 将 jupyter notebook 嵌入到网站中,只要 BokehJS 仪表板支持小部件,则 notebook 将是交互式的。这是一个例子

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

于 2018-02-01T02:05:04.947 回答
2

自从提出这个问题以来已经有很长时间了,但我会用今天的技术来回答。

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

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

他们的网站上有一些示例,我还在我的博客中发表了一篇文章,我在其中使用了这项技术以及 Dockerfile、ffmpeg、matplotlib、动画和交互式小部件。所以我相信这种方法是相当健壮和灵活的。

官方文档说你需要一个 repo,但我可以设法使用 gists 并在主 repo 中提交了一个问题来解释如何做。

于 2019-01-25T14:58:28.377 回答