Jupyter widgets与JupyterLab扩展之间有何区别?

6

我知道JupyterLab是Project Jupyter的下一代基于Web的用户界面,它基于Jupyter Notebook和架构,最终将取代经典的Jupyter Notebook。

我有点困惑于Jupyter小部件JupyterLab扩展之间的区别和关系:

  • JupyterLab扩展最终会取代使用交互式Notebook的那些Jupyter小部件吗?

  • Jupyter小部件仅适用于经典Jupyter Notebook吗?还是小部件只是JupyterLab扩展的一种类型?

1个回答

2
我不是Jupyter扩展专家,但我认为以下内容准确无误(如果有人知道更多信息,请纠正我)。
Jupyter小部件实际上是使用扩展实现的。
小部件与其他扩展之间的主要区别在于,笔记本中的Python内核可以轻松地与小部件交互 - 内核可以“调用”小部件,小部件可以“回调”内核。例如,内核可以更改小部件中按钮的文本标签,而小部件上的按钮按下则会导致Python代码在内核中执行。
例如,以下笔记本将创建一个带有点击回调到Python的小部件,该回调会回调到Javascript以更改小部件的外观:

https://github.com/AaronWatters/jp_proxy_widget/blob/master/notebooks/hello%20proxy%20world.ipynb

扩展程序并不会自动构建Python内核进程与扩展实例进行交互的方式,但是可以实现这种交互。


有点老了,但我认为它可能很有用: 有两种类型的扩展,labextensions(JavaScript 前端)和 serverextensions(Python 后端)。 Jupyter小部件是一个项目,使用这两个,一个用于在笔记本中显示小部件,另一个用于与内核通信。它们之间的通信是通过websocket完成的,由lumino(新的phosphorJS)管理。 - remborg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接