【问题标题】:Does Jupyter support 'read-only' notebooks?Jupyter 是否支持“只读”笔记本?
【发布时间】:2017-10-30 18:31:09
【问题描述】:

我的团队目前正在使用 Pandas 为业务分析师开发一项相当快速的集群作业。我们计划托管一个本地服务器,最终用户可以在其中输入一些参数以在例程执行期间使用,这将访问内部数据库,然后返回一个 CSV 文件。

Jupyter 服务器对我们来说是理想的,但问题是我们不能让用户能够编辑底层代码 - 他需要做的就是提供参数并开始执行作业。我认为,将其转换为 HMTL 会使一切都变成静态的,这意味着我们无法按需提供更新的数据。

Plan B 只是制作一个小型 django 应用程序,但我想知道是否有办法通过 Jupyter 本身来完成我所需要的,或者对于类似的用例是否有更好的选择?我们甚至不打算显示任何小部件,只是为用户提供原始数据输出。

提前致谢

【问题讨论】:

  • flask 比 django 更轻巧,可能更好地满足您的需求......但是有大约一百万种方法可以给这只猫剥皮(jupyter notebook 可能是最糟糕的方法之一)
  • 您可以在笔记本中访问您的 django 模型/视图;D

标签: python django pandas web jupyter


【解决方案1】:

笔记本文件可以取消其写入权限:

$ chmod -w notebook.ipynb

笔记本仍然是交互式的,但笔记本文件不会改变。

【讨论】:

    【解决方案2】:

    还有一个笔记本扩展,Freeze,它允许锁定(允许执行但不编辑单元格内容)或冻结(禁用编辑和执行)单个代码单元格或降价块。这很重要,因为代码单元的执行顺序在运行 notebook 时很重要。 JupyterCon 上的This presentation 有更多详细信息。

    【讨论】:

      【解决方案3】:

      只需在浏览器控制台中尝试评估此行:

      Jupyter.notebook.writable = false;
      

      这将使当前的 jupyter notebook 文件不可写,因此不允许任何更改。

      【讨论】:

      • “浏览器控制台”是什么意思?
      • 如果您使用的是谷歌浏览器,请在浏览器中单击鼠标右键,然后单击“检查”
      • 也许我不理解 OP 的问题,但在您的浏览器控制台中调用该 JS 行只会在给定页面上将更改应用于您。它对其他人没有影响,并且在页面刷新后更改不会持续存在。
      • @MeltedPenguin 是的,你是对的,JS 行只在浏览器的当前窗口中有效。
      猜你喜欢
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      相关资源
      最近更新 更多