真的与Jupyter笔记本,实验室,扩展和ipywidgets混淆

Ast*_*One 14 jupyter-notebook ipywidgets jupyter-lab

我想创建一个交互式JupyterLab Notebook应用程序,我需要创建一系列自定义小部件.所以我开始研究这件事,我越看越困惑.为了简单起见,我会问一堆简单的问题:

  1. 在Jupyter笔记本上使用小部件的最常用方法之一是使用ipywidgets库.对?
  2. 与经典笔记本不同,JupyterLab的笔记本无法直接呈现JavaScript.因此,在ipywidgets文档中创建自定义窗口小部件的教程无法在JupyterLab上运行.对?
  3. 如果想在JupyterLab的笔记本上运行JavaScript,她或者他必须通过扩展来完成.在ipywidgets的情况下,必须安装@ jupyter-widgets/jupyterlab-manager.对?
  4. 如果您想使用ipywidgets库编写自定义小部件,可以使用两个GitHub项目作为起点:widget-cookiecutter和widget-ts-cookiecutter.据我所知,前者基于JavaScript而后者基于TypeScript.此外,第一个似乎对某种类型不活动,而第二个更活跃.JupyterWidgets团队是否计划专注于TypeScript?我应该遵循哪一个?
  5. cookiecutter项目实际上没有文档.我真的很困惑并且很难理解他们的代码.当然,我可以复制粘贴它们并开始乱搞,直到我弄清楚整个工作如何工作以及代码中的"钩子"或"入口点"是什么,但如果有人能给我一些额外的指示,我真的很感激.
  6. JupyterWidgets是Jupyter项目的"官方"项目吗?鉴于项目中的成员数量非常少,我想知道将我的工作基于ipywidgets是多么安全.请记住,"DeclarativeWidgets"项目很久以前就已经放弃了.
  7. 是否有其他库可以实现比ipywidgets中更多的小部件,并且还可以在JupyterLab上运行?
  8. 我想为服务器端数据处理创建一个Web应用程序.我最初的目标是创建一个不希望用户进行任何编码的应用程序/服务,并通过使用html/JavaScript小部件执行所有操作.这可以使用Angular/React前端和Python/Django/Flask后端来实现.但是,稍后,我意识到有些用户可能希望在服务器上进行一些额外的自定义/任意处理.这就是我考虑JupyterLab的原因.我想知道它是否是最好的,是否有可能只创建一个普通的Angular/Python字体/后端,并以某种方式将其包装在JupyterLab扩展中,该扩展将提供一种机制来访问此数据.应用/服务并将其带到笔记本电脑进行进一步处理.

提前致谢

Vid*_*dar 6

一般来说,stackoverflow问题应该尝试只询问一个问题.话虽如此,我会尽力回答这些问题:

  1. ipywidgets是主要方式,是的.这是人们谈论笔记本小部件时的意思.
  2. jupyterlab repo中的jupyterlab中存在跟踪常规JS的问题.
  3. @jupyter-widgets/jupyterlab-manager是jupyterlab的小部件,是的,但你仍然需要ipywidgets中的python代码.有关详细信息,请参阅http://ipywidgets.readthedocs.io/en/stable/user_install.html.
  4. 虽然一个是JS和另一个TS是真的,但TS也有所有的花里胡哨.因此它也更复杂.JS一个更简单,因此可能更好地理解最重要的位.
  5. 我同意两者都可以用更好的文档!我一直想这样做.实现这一目标的最佳方法可能是打开有关各个存储库的特定问题的问题,并建议解释在README或类似内容中.这样你就可以确保你的痛点得到解决.
  6. 鉴于小部件的大量用户群,我认为它是安全的.虽然公交系数不是很高,但如果维护人员数量下降,人们往往会加强.
  7. 是的,但是对于开发人员和用户而言,为jupyterlab使用小部件仍然需要稍微维护一些.
  8. 您可能想要学习的是Comms(http://jupyter-notebook.readthedocs.io/en/stable/comms.html),这是小部件用于同步的内容.这是较低的水平,所以你必须判断哪个最适合你.