根据这里的Jupyter博客,现在可以在静态网页中嵌入交互式小部件:
现在,通过插入包含序列化窗口小部件状态的html片段,可以将实时交互式窗口小部件嵌入到静态网页或博客中.这也适用于自定义小部件库.请参见http://jupyter.org/embed-jupyter-widgets.html.
当我打开上面的例子,在firefox或chrome中,我得到交互式小部件好吧!
但是,如果我使用相同的python代码创建一个新的笔记本,将笔记本保存为html,然后复制粘贴可嵌入的HTML片段以呈现交互式窗口小部件,它无法正常工作.我充其量只获得了一个小部件状态的图像,但没有任何交互式.
有没有人设法使用交互式小部件复制HTML页面?有什么东西我错过了吗?
我正在将带有交互式小部件的 jupyter 笔记本更新到更新的版本(ipywidgets 7.2.1)。
它曾经具有interactive()通过单击按钮(功能__manual=True)手动执行的功能。但是现在我无法重现相同的行为。
这是一个最小的例子:
from ipywidgets import interactive, interact_manual
import ipywidgets as widgets
def do_sth(x):
#do sth with the argument passed
print("done "+str(x))
nb = widgets.BoundedIntText(description='Number:')
#Interaction in accordion nested in a tab
tab = widgets.Tab()
tab.set_title(0, 'Page 1')
#old method
#problem: it is not manual anymore
w = interactive(do_sth, x=nb, __manual=True)
#new solution 1
#problem: the widget appears also outside the tab/accordion
w1 = interact_manual(do_sth, x=nb)
w1.widget.children[1].description = 'do sth' #seems a bit …Run Code Online (Sandbox Code Playgroud)