如何与非程序员共享Jupyter笔记本?[关闭]


167

我试图用Jupyter做我不能做的事情。

我的内部服务器上运行着Jupyter服务器,可通过VPN和受密码保护的服务器进行访问。

我是唯一实际创建笔记本的人,但是我想以只读方式使其他团队成员可以看到一些笔记本。理想情况下,我可以与他们共享一个URL,当他们希望查看带有刷新数据的笔记本时,他们将为其添加书签。

我看到了导出选项,但找不到任何有关“发布”或“公开”本地现场笔记本的信息。这不可能吗?考虑应该如何使用Jupyter可能只是错误的方式?


5
看来您可以将.ipynb文件放在GitHub上:blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe 2015年

4
但是要使其私有化,我们将不得不为帐户付费。
xav 2015年

因此,您不希望它们完全公开吗?如果只对本地人开放,他们为什么不能访问服务器?
jonrsharpe 2015年

2
对不起,如果不清楚。我想在服务器上为笔记本提供服务(只有团队才能看到),但如果可能的话,我想避免给他们提供Jupyter实例的密码或其他具有编辑权限的访问方式。
xav 2015年

4
也许您可以简单地创建一个秘密要点(gist.github.com)“ 秘密要点对于搜索引擎是隐藏的,但您提供URL的任何人都可以看到。” 一个甚至没有github帐户。快速。
tagoma

Answers:


78

共享Jupyter笔记本的“最佳”方法是将其放置在GitHub(直接查看)或其他公共链接上,然后使用Jupyter Notebook Viewer。当隐私更多是一个问题时,可以有其他选择,但肯定会更复杂。仅Jupyter并没有内置的方法来执行此操作,但是有两个选项:

托管您自己的nbviewer

GitHub和Jupyter Notebook Veiwer都使用相同的工具将.ipynb文件呈现为静态HTML,此工具为nbviewer

安装说明比我愿意介绍的要复杂,但是如果您的公司/团队拥有不需要密码访问的共享服务器,则可以在该服务器上托管nbviewer并指示其从您的凭据服务器加载。这可能需要比您将在文档中找到的配置更高级的配置。

设置部署脚本

如果您不一定需要实时更新HTML,则可以在有证书的服务器上设置一个脚本,该脚本将仅使用Jupyter的内置导出选项来创建静态HTML文件,然后将其发送到更易于访问的服务器上。


您也可以直接在nbviewer.jupyter.org上访问nbviewer并在其中添加文件
-guhur

Jupyter Notebook Viewer还将在要点内渲染静态笔记本,从而使您无需使用完整的GitHub存储库。
韦恩

注意“添加文件”不包括使用网络对话框上传文件,该对话框允许您从浏览器文件系统本地选择文件。
lucid_dreamer'3

29

Google最近公开了其内部协作项目(此处链接)。您可以使用与启动Google表格或Google文档相同的方式来启动笔记本,然后简单地共享笔记本或添加协作者。

目前,这对我来说是最简单的方法。


1
我很惊讶地发现Colaboratory的使用是如此直观和容易。请注意,您只能将链接共享为视图,但是访问者可以启用“游乐场”模式来运行代码块和调整参数。很酷。
蒂莫西·伦巴德

快捷键在colab中都坏了。
mathtick

您可以从这里开始:Google colab简介
cglacet

24

迈克尔建议运行自己的nbviewer实例是我过去在Enterprise Github服务器上使用的一个很好的建议。

另一个轻量级替代方法是在笔记本的末尾有一个单元格,该单元格对nbconvert进行shell调用,以便在运行整个过程后自动刷新该单元格:

!ipython nbconvert <notebook name>.ipynb --to html

编辑:使用Jupyter / IPython的Big Split,您可能需要将其更改为!jupyter nbconvert <notebook name>.ipynb --to html现在。


12

这取决于您打算如何使用笔记本电脑:您是否希望用户可以重新计算结果或只是玩游戏?

静态笔记本

NBViewer是一个很棒的工具。您可以在Jupyter中直接使用它。Github也有一个渲染器,因此您可以直接链接文件(例如https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb

活着的笔记本

如果希望用户能够重新计算某些部分,则也可以使用MyBinder。启动笔记本需要花费一些时间,但是这样做值得。

正如@Mapl称,谷歌可以承载您的笔记本Colab。一项不错的功能是通过GPU计算单元。


1
MyBinder将制作一个徽章,您可以将其放置在存储库中,以使用户可以轻松启动活动的活动的)笔记本,有关基本示例,请参见此处。您甚至可以通过输入笔记本文件的路径,然后按启动按钮旁边的向下箭头获取徽章,来指定直接启动到某个ACTIVE笔记本页面而不是Jupyter仪表板。
韦恩

7

在WordPress上执行此操作的一种好方法包括以下步骤:

步骤1:在文本编辑器中打开Jupyter笔记本,然后复制内容,如下所示: 在文本编辑器中打开您的.ipynb文件时,可能看起来像这样

步骤2: 按Ctrl + ACtrl + C此内容。然后按Ctrl + V到您应该创建的GitHub Gist。

第3步:创建公共要点,然后像通常将要点要嵌入到WordPress一样,将要点嵌入,请转到HTML编辑器并按如下所示添加:

[gist gist_url]

我实际上已经在我的博客上实现了此功能。你可以在这里找到帖子


4

实现此目标的一种方法是使用JupyterHub

使用JupyterHub,您可以创建一个多用户中心,该中心可以生成,管理和代理单用户Jupyter笔记本服务器的多个实例。由于其灵活性和定制选项,JupyterHub可用于为学生,公司数据科学小组或科研小组的笔记本电脑提供服务。

在此处输入图片说明


2
到目前为止,jupyterhub仅对使许多用户具有使用jupyter的访问权限有用。ShareHub正在处理笔记本的共享,但是jupyterhub并没有帮助。
克雷格(Craig)

@Craig,您有机会尝试吗?什么是ShareHub?是什么让您认为JupyterHub在这种情况下没有帮助?您能否以任何论据支持您的评论,以便其他人可以从中学习?
Denis Rasulev

@Craig我第二次提出“ Denis Rasulev”的请求。ShareHub不会返回任何有意义的结果,您的其余评论都是晦涩的。
lucid_dreamer

@Denis此解决方案与mybinder.org相比如何?任何意见?
lucid_dreamer

@ user1712447,这个主意看起来不错,但是我一直都没有碰到示例总是出现“没有空间”错误的运气。所以什么也不能告诉你。另外,恕我直言,在这里讨论它看起来有点像题外话。
Denis Rasulev
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.