如何解决如何使ipywidgets交互以在HTML中工作?
我有一个带有以下单元格的Jupyter笔记本:
from ipywidgets import widgets,interact
slider = widgets.IntSlider()
def print_val(v):
print(v)
interact(print_val,v=slider)
这在笔记本电脑上可以正常工作-当我更换滑块时,打印输出将更改。但是,当我使用nbconvert
将笔记本转换为HTML时,滑块仍可以在输出HTML中很好地呈现,但对打印输出没有影响。
任何想法如何使它工作?也许ipywidgets不是适合这种东西的库?
谢谢!
解决方法
我认为您错过了nbconvert
的工作。需要此实用程序才能将笔记本转换为其他格式,例如PDF,LATEX等。它用于共享和演示。笔记本一旦转换,就会失去互动选项。
Jupyter笔记本的交互性由Jupyter服务器提供,当您从命令行调用jupyter notebook
时,Jupyter服务器就会启动。
因此,当您将笔记本保存为网页或将其转换为HTML时,便没有服务器后端部分可以处理所有更改。这是一个静态网页。由于滑块是标准元素,因此可以正确呈现,但是在滑动时不会发生任何事情:没有“附加”到它来处理事件。
最后,为了能够与Jupyter Notebook交互,您需要运行某种Jupyter服务器。如果您只需要一个本地服务器,则它可以是本地服务器;如果您想与其他人合作,则可以使用Google Colab(或Jupyter Hub)。
此外,有多种解决方案可让人们在图上具有一些交互性,例如Bokeh和Plotly。它们还要求您运行某种服务器。
当然,只有在您需要Python处理数据时,所有相关的内容。如果您的需求很简单,例如显示滑块值,那么最好使用简单的Javascript,它可以直接在浏览器中处理滑块更改,而无需在后端运行任何服务器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。