最后你提到使用 Github。您可以直接在其中共享笔记本.ipynb
使用该表单(实际上是 json 编码)或 Github 的 Gist 站点,您发送链接的任何人都可以将其视为完美呈现的静态。您当然可以发布到 html,但随后您需要托管 html 或使用githack http://raw.githack.com/链接到它。始终可以选择转为 PDF 并通过电子邮件发送。既然您谈到转换,我认为您不需要它处于活动状态;但是,使用 MyBinder.org 也是可能的,请参阅示例here https://github.com/binder-examples/r您可以在其中单击顶部的“启动”按钮并启动其他人以前制作的笔记本。
我将逐步解释每一条建议并进行进一步说明。
笔记本{共享}空间
笔记本{共享}空间 https://notebooksharing.space/它被誉为“共享笔记本的最快方式”,适用于 R markdown 和 Jupyter 笔记本。允许使用假设直接在笔记本上进行注释和突出显示。如果您限制共享链接,则可以将其设为私有。
GitHub 和 nbviewer(或 nbsanity.com)共享笔记本
如果笔记本是公开的,您可以使用 Github 来共享笔记本。想象一下,您创建了一个公共存储库,并将一个笔记本放在其中.ipynb
文件形式。 (注意:所有这些步骤都可以直接在 Github 的 Web 界面中完成,无需在本地计算机上安装 git。)让我们使用here https://github.com/binder-examples/r作为一个理论例子。如果你去那个仓库你会看到一个笔记本index.ipynb
列出。点击链接即可直接查看。 (你现在应该是here https://github.com/binder-examples/r/blob/master/index.ipynb.) 笔记本可能会渲染或者可能会尝试超时。 Github 的渲染并不完美,所以不要依赖它。更好的是使用 nbviewer 网站。要使用 nbviewer 站点,您需要从地址栏复制笔记本的 URL。对于此示例,您需要复制:
https://github.com/binder-examples/r/blob/master/index.ipynb
使用剪贴板中的该 URL,转至 nbviewer 站点:https://nbviewer.jupyter.org/ https://nbviewer.jupyter.org/。当您到达 nbviewer 的首页时,将 URL 粘贴到顶部“输入 Jupyter Notebook 的位置...”下方的表单中,然后单击Go!
。这将带您进入一个漂亮的笔记本页面,而无需任何 Github 标头/残渣。请注意,笔记本中是 Python 代码还是 R 代码并不重要。在 nbviewer 上看起来会很不错。要与某人共享此视图,请复制此页面地址栏中的 URL。在这种情况下,它将是:
https://nbviewer.jupyter.org/github/binder-examples/r/blob/master/index.ipynb
您可以分享那个链接现在和任何人。
该链接告诉 nbviewer 站点从 Github 获取笔记本代码并渲染它。如果您稍后更新,他们仍然可以使用相同的链接并打开更新的表单。 (请注意,nbviewer 有时可能需要 10 分钟左右才能从 Github 收集更新。)还可以使用 Github 的 URLS 和 nbviewer 共享笔记本的特定版本。您需要了解如何浏览 Github 上特定提交的文件并使用这些 URL。
需要注意的是,nbviewer 渲染页面的链接遵循引用 Github 存储库的模式,因此可以在不执行所有这些步骤的情况下建立链接。
另外需要注意的是,右上角有一个带有三个环的符号,就在下载按钮的左侧。如果您单击这些环,您可以通过 MyBinder.org 启动该笔记本的活动版本。当会话启动时,该笔记本将运行,无需安装任何其他软件包或任何东西如果存储库已配置,则底层技术已识别配置文件并构建了正确的环境。如果存储库未设置 Binder,它仍然会打开笔记本,但当您尝试运行时可能会收到错误,因为默认情况下环境不完全兼容。
如果您使用的是移动设备并且您的.ipynb
文件在 GitHub 之类的地方在线,您也可以在以下位置尝试并行技术nbsanity.com https://nbsanity.com/。 (源代码位于https://github.com/hamelsmu/nbsanity https://github.com/hamelsmu/nbsanity.) nbsanity 是开发者 Hamel Husain 专门针对移动设备设计的,它可以更好地处理允许滚动的问题,并且“它与 nbviewer 不同,因为它使用 @quarto_pub 作为渲染器,它可以以更合理的方式在不同平台上显示笔记本。结果是,如果您的笔记本中恰好有这样的指令,它也会遵守所有四开指令”。
Gist 站点和 nbviewer 共享笔记本
此过程与“GitHub 和 nbviewer 共享笔记本”中描述的过程非常相似。关于笔记本放置位置的前几个步骤.ipynb
文件不同。您可以访问 Github 的 Gist 网站:https://gist.github.com/ https://gist.github.com/。该网站旨在共享代码片段或几个文件,并不具备完整的 Github 存储库所具有的所有功能。然而,它非常适合您的使用。您可以将内容粘贴到.ipynb
文件或上传到那里,然后使用 nbviewer 上的 URL,如“GitHub 和 nbviewer 共享笔记本”中所述。
Gist 站点和 githack 共享笔记本的 HTML
此过程与“Gist 站点和 nbviewer 共享笔记本”中描述的过程非常相似。但是,您上传到 Gist 网站的内容和用于共享渲染的技术有所不同。这次您需要将您提到的 HTML 文件放在 Gist 站点上。此时它看起来像 HTML 代码而不是笔记本。将 Gist 站点页面的 URL 复制到剪贴板。访问 raw.githack.com 网站:http://raw.githack.com/ http://raw.githack.com/。将 URL 粘贴到顶部显示要粘贴 URL 的表单行中。现在您将进入一个 HTML 呈现页面。您可以从地址栏复制 URL 并与任何人共享,类似于使用 nbviewer 查看笔记本的方式。
Github 存储库和 githack 共享笔记本的 HTML
这与“Gist 站点和 githack 共享笔记本的 HTML”中描述的内容非常相似。不同之处在于您将使用实际的 Github 存储库来存储笔记本的 HTMl 版本。
共享笔记本的 PDF
你没有提到这条路线。所以我会保持简短。根据您安装的 Jupyter 或使用它的位置,我发现保存 PDF 表单不一致。有一个地方应该是可能的,那就是here https://github.com/fomightez/jupyter_hide_code。如果您去那里并按launch binder
按钮,您可以启动一个可进行 PDF 保存的会话。你会想要专门使用Export to PDF
图标将出现在笔记本上方的顶部菜单栏上。
分享笔记本的活动形式
我也将保持简短,因为它在上面的部分中以各种形式进行了讨论,并且比使用 nbviewer 更高级。
“GitHub 和 nbviewer 共享笔记本”部分的末尾描述了执行此操作的一种方法。您也可以在不使用 nbviewer 的情况下执行此操作。让我们回到示例存储库here https://github.com/binder-examples/r。复制该页面顶部的 URL:
https://github.com/binder-examples/r
现在访问 MyBinder.org 网站:https://mybinder.org/ https://mybinder.org/将该 URL 粘贴到表单顶部显示“GitHub 存储库名称或 URL”的位置,然后单击“启动”。这将使用由该存储库中看到的特殊文件配置的环境来启动临时会话。您将能够单击笔记本index.ipynb
并运行它。切勿共享正在运行的会话链接,因为它是临时的。
要共享某些内容,以便其他人可以使用您的笔记本启动自己的会话,您需要探索使用更多表单选项:https://mybinder.org/ https://mybinder.org/生成可以与他人共享的链接。例如,您可以添加特定笔记本的路径,以便在会话启动时以已打开的该笔记本开始。填写完要复制的用于共享 URL 的表单后,您将看到在“复制下面的 URL 并与其他人共享您的活页夹:”下生成的 URL。您会看到该表单还允许为可点击徽章制作代码,就像您在https://github.com/binder-examples/r https://github.com/binder-examples/r .
请注意,使用可运行的笔记本启动会话是有效的,因为该存储库已配置为安装 irkernel。如果没有进行一些配置,就无法使用 R 运行任何存储库中的任何笔记本。 (它默认只具有 Python 内核。)但是,我引用的示例存储库可以用作模板,使用以下命令创建您自己的新存储库:Use this template
button here https://github.com/binder-examples/r简化执行此操作所需的步骤。还有打孔 https://karthik.github.io/holepunch/帮助执行类似的步骤来共享基于 R 的代码。
当您想要共享私人笔记本时结合技术.ipynb
文件并让某人查看或运行它
您也可以将笔记本寄给人们.ipynb
文件,然后他们有一些选择。他们可以使用NB预览 https://jsvine.github.io/nbpreview/它允许您选择要在浏览器中查看的本地文件。笔记本只能通过此工具查看。笔记本文件实际上仅位于本地计算机上的浏览器本地缓存中,因此它非常适合共享敏感笔记本,并为不常用笔记本的人提供建议,以应有的方式呈现它。如果这是笔记本中的超级敏感工作,并且相关人员不信任,因为 nbpreview 是一个在线站点,即使您指向的内容仍然只是本地的,也可以在本地安装和运行 nbpreview,请参阅here https://github.com/jsvine/nbpreview。也可以在本地安装nbviewer并查看。或者他们可以使用他们的 Jupyter 系统运行您发送的笔记本文件。由于其中一些选项的要素依赖于高级技能和了解如何安装东西,因此它们可能并不适合所有相关人员。
规避这些障碍的一种方法是建立一个能够通过 MyBinder 提供完全适合运行私人笔记本的环境的存储库,然后建议用户如何启动会话并上传您单独与他们共享的笔记本,例如通过电子邮件。你可以看到here https://mybinder.readthedocs.io/en/latest/faq.html#how-secure-is-mybinder-org有关 MyBinder.org 安全性的更多信息。
等等……还有更多
随着笔记本电脑变得越来越流行,使用和共享笔记本电脑的方式也越来越多。这个答案只涉及到一些更开放、公开的方式。当您通过授权添加 Jupyter Hub 时,还会有更多内容,因为您可以在 JupyterHub 网络中共享指向您自己的笔记本的链接。现在也有商业产品。您也可以随时使用 Google Colab 或 Azure 笔记本来共享它们。