从交互式Jupyter笔记本创建Web应用程序的最简单方法是什么?

时间:2016-08-10 07:37:17

标签: jupyter-notebook

我有一个Jupyter笔记本,它绘制一些数据并让用户通过滑块与它进行交互。

制作具有类似功能的网络应用最简单的方法是什么? (重复使用尽可能多的代码......)

5 个答案:

答案 0 :(得分:1)

Jupyter Incubator的Jupyter Dashboards Bundlers扩展是保持交互性的一种方式。

编辑:虽然安装此软件包的pip也会安装cms软件包依赖项,例如dashboard_bundlers,但cms需要明确启用/快速设置为笔记本仪表板工具的扩展工作。

答案 1 :(得分:1)

AppMode是“ Jupyter扩展,它将笔记本变成Web应用程序”。

自述文件:

  

Appmode由服务器端和Jupyter的笔记本扩展组成。   这两个扩展一起提供了以下功能:

     
      
  • 一个人可以通过单击工具栏上的Appmode按钮来查看任何处于appmode的笔记本。或者,您可以从   baseurl / notebooks / foo.ipynb到baseurl / apps / foo.ipynb。这也是   允许直接链接到appmode。

  •   
  • 在app模式下打开笔记本时,将自动执行所有代码单元。为了呈现干净的UI,所有代码单元   隐藏,降价单元格为只读。

  •   
  • 笔记本可以在appmode下多次打开而不会受到干扰。这是通过创建临时副本来实现的。   每个活动appmode视图的笔记本。每个appmode视图都有其   专用的ipython内核。当关闭appmode页面时,内核为   关闭并删除临时副本。

  •   
  • 为允许通过url参数在笔记本之间传递信息,当前url被注入变量中   jupyter_notebook_url。

  •   

答案 2 :(得分:1)

我相信最简单的方法是使用voilà

安装后,您只需运行:

voila <path-to-notebook> <options>

您将拥有一台作为网络应用程序运行笔记本电脑的服务器,所有输入代码都将省略。

答案 3 :(得分:1)

为了完整起见-还存在https://www.streamlit.io/

我仍然不了解voilastreamlit之间的确切区别。 目前,我只是想用新的参数重新运行所有内容……我对voila仍然感到不走运。

编辑:我看到streamlit需要一个原始的python,而不是.ipynb,这个事实意味着这个答案是完全错误的,在进一步采取行动/发表评论之前,我将在streamlit上进行一些搜索

Edit2:Voila看起来很棒。但是,我发现几乎没有什么东西可以揭示潜在的复杂性,因此可能会引起麻烦。

  • 回调。小部件在jupyter中工作得很好,但是由于无法重新运行一个单元格,因此有时必须修改逻辑以使其在Voila中起作用。
  • 交互式Java 对象需要特殊处理,例如matplotlib有一个便宜的解决方案,但是对于jsroot
  • 链接。在jupyter中创建(文件和)下载链接很容易,Voila也可以提供文件,但是还需要另外处理。

毕竟,我对自己提出一个问题-学习对jupyter的许多技巧和修改还是使用其他一些系统更好?我要看看streamlit是否可以提供给出一些答案。

答案 4 :(得分:0)

@raphaelts有一个正确的想法,应该被接受。截至2019年12月,Voila是将Jupyter笔记本作为独立Web应用程序部署到生产中的最合适方法。考虑内部数据科学团队使用SPA stlye笔记本与内部C-Suite团队共享其分析工作负载,并隐藏所有代码并添加自定义GUI /交互。最近在HN上进行了讨论 https://news.ycombinator.com/item?id=20160634和Jupyter维护者https://blog.jupyter.org/and-voil%C3%A0-f6a2c08a4a93 enter link description here

的正式公告