如何使用笔记本jupyter在html中发布R代码

2024-01-31

我看到很多人谈论使用 jupyter 笔记本将代码转换和共享为 HTML,就像小菜一碟,但它对我来说变成了一场噩梦!

我确实可以通过使用下拉菜单下载代码将其转换为 html,但它只能在我自己的计算机上访问,如果我将其作为链接发送给其他人,他们会看到:无法访问此网站。HTML 下载只提供本地主机上的链接,并且不可共享。有谁知道它的解决方法吗?我确实使用了 github,但这似乎仅适用于 Jupyter Python,而不适用于 R。

这里有什么帮助吗?


最后你提到使用 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 笔记本来共享它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用笔记本jupyter在html中发布R代码 的相关文章

  • 更改时触发跨度文本/html

    jQuery 或 JavaScript 中是否有任何事件在以下情况下触发span标签 text html 已更改 Code span class user location span user location change functio
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • xpath:选择中断标签之前和之后的文本节点

    考虑以下因素 混合 br and br text1 br text2 br text3 br text4 br text5 如何找到每个文本节点 我正在考虑符合 br 标签之前或之后的条件的东西 但不确定是否 br and br 在 xpa
  • 文本后面有粗下划线

    如何使用 span 和 css 在文本 ABC 后面重现这种下划线 我已经能够做下划线below嵌套的文本span和彩色的border bottom 但无法获取behind图像和above文本基线 p style font size 48p
  • 数字和小数的输入掩码

    在测试我的程序后 我发现了以下错误 我在 sqlserver 中的表包含 价格数字 6 2 我的程序的用户输入价格 555 00 就很好了 但是当他输入 555555 时 这是错误的 所以我需要指定掩码 其中尾数是可选的 0 到 999 小
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 使用滤镜将css3灰色图像转为蓝色?

    我正在尝试将灰色图像变为更蓝色的色调 真的不知道如何为此设置滤镜或是否可能 该图像只有一种颜色 cacaca 其余部分透明 我正在尝试使用相同的图像进行一些叠加 以便它仅突出显示那些彩色部分而不是透明区域 一直在尝试其中的一些 但没有取得多
  • Git 删除其他人从远程所做的最后提交

    所以 我的情况是 错误地 我已经授予某人对我的分支的承诺 现在 在我的本地 我已经进行了提交 当我尝试将其推送到远程时 它显示远程在前面 因为对方已经将他的代码推送到了这个分支并进行了多次提交 现在 我可以从远程删除这些提交而不将拉取到本地
  • 将样式添加到 mat-autocomplete 的 mat-option

    我有这个 HTML代码在这里 https stackblitz com edit angular mat autocomplete with selected value vx1uqg file src 2Fapp 2Fautocomple
  • CSS 中的像素与像素密度

    我对 HTML 和 CSS 非常陌生 我突然想到 当决定某个东西是 5px 时 比如说 由于像素的物理尺寸取决于密度 所以 5px 在 100 ppi 的屏幕上看起来肯定比在 300 ppi 的屏幕上看起来更大ppi 这是正确的吗 如果是
  • 在html表格的每一行添加点击功能

    我最近创建了一个函数 它根据用户在网站中的输入进行一些复杂的名称匹配 并将结果作为表格格式的 html 文件返回 我的问题是如何在每一行添加点击功能 df get cust info returns a pandas dataframe d
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • jquery从变量中删除html元素

    我将 html 保存在变量中 var itinerary events today html 我有很多 html 和一个按钮我想删除 它的 ID 为 myButton 如何从变量中保存的 html 中删除它 我建议这种方法 var itin
  • 动态img(或视频)标签根本不加载资源,HTTP请求处于“待处理”状态

    我尝试使用以下方法在 Web 应用程序上加载资源时遇到一些问题img or videoHTML 标签 我在我的应用程序中使用 Angular 并动态设置src的参数img标签 使用ng src src 指示 没有那么多图像和资源需要加载 在
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • 更改文本输入标签中文本的大小?

    我有一个很大的文本输入框 但我无法更改字体大小
  • 无效字符错误:“fred”

    我确信他一定是一个新手问题 简单来说 我想定义我的第一个 Polymer dart 组件 只是我一直在同一个减速带上踢脚趾 为了使事情变得非常简单 我将其简化为一个非常简单的示例 我做了一个简单的rename示例 跑表 来自 Dart 组件
  • FireFox 中的“contenteditable = true”高度问题

    当有空的时候div with contenteditable true CSS contenteditable true border 1px dashed dedede padding 3px HTML div div 在 IE 和 Ch

随机推荐

  • go lang中按不同维度对点(结构)进行排序

    我有一个 Points 类型的多维点列表 我已经实施了sort Sort界面 现在可以排序y value e g type Points Point func points Points Len int return len points
  • 当视图不与模型交互时,这就是 MVC 吗?

    我设计了一个 MVC 在 NET 中 其中视图没有到模型的链接 它只知道控制器 传统的 MVC 模式的所有部分都相互通信 就我而言 控制器基本上是一个调解者 这会将任何异常或逻辑排除在视图之外 它对模型的依赖性为零 这不再是 MVC 了吗
  • 使用 Three.js 单击网格获取像素的颜色值

    我正在使用 Three js 的最新版本 我得到了一个带有 2D 网格和渐变颜色的场景 颜色取决于分配给每个顶点的值 我想通过用鼠标单击渐变的每个点来获取它的值 通过获取颜色 并对我的值进行一些数学计算 我尝试使用这样的系统 因为它在这里工
  • 使用toggleClass更改类后的jQuery事件

    我对 jQuery 和toggleClass 有疑问 我想创建一个 div 单击按钮即可关闭 按钮发生变化 当我再次单击此按钮时 div 将再次打开 问题是 当我单击按钮时 div 关闭并且按钮的类发生变化 这很好 但现在 当我单击新类的按
  • fread EOF 而不是分隔符

    我正在尝试用 fread 读取一个大文件 但我猜文件的布局有些混乱 如果我尝试读取文件 data fread input data txt sep t 在此文件上 我只是选择了有错误的行以及前后的一些内容 ID imdbID Title Y
  • 用 Python 封装旧版 Fortran。使用 setuptools 和 numpy.distutils 可以吗?

    我正在尝试为我的领域中一些流行的 Fortran 代码制作一个 python 包发行版 我希望它使用最标准的方法setup py文件 相关问题对学习有帮助如何包装 Fortran 扩展 https stackoverflow com que
  • 如何在新版Android Studio中添加classpath

    我将 android studio 版本更新为 bumblebee 版本 现在我想将导航组件添加到我的项目中 我想将类路径添加到 gradle 但是这个文件 gradle 已更改 我不知道如何添加它 我想添加这个 classpath and
  • 如何使用 Node.js 中的本机 Promise 全局处理异常?

    我知道怎么做处理承诺中的特定错误 https stackoverflow com questions 21800010 how do i handle errors with promises但有时我的代码片段看起来像这样 someProm
  • jquery ui - 模式对话框(创建模式内容的更好方法?)

    有没有办法在 JavaScript 中定义模式内容 而不是总是必须在页面上有一个元素并从中创建对话框 它有标题选项 因此我可以 动态 创建模态标题 但实际内容呢 就像说我需要它说 你要删除图像 539 而不是为每个可能的图像创建一个模式 或
  • NoSQL - MongoDB 与 CouchDB [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 对于 NoSQL 运动 我完全是个菜鸟 我听说过很多关于 MongoDB 和 CouchDB 的事情 我知道两者之间存在差异 作为进入 NoSQ
  • 在 cakephp 2.0 中运行插件的 shell

    我创建了一个新的 CakePHP 2 0 应用程序 并且想要运行插件的 shell
  • 抛出异常还是阻止异常?

    问题是是否更愿意Throw an exception或防止其发生 这是一个游戏项目 IndexOutOfBoundsException与围绕它进行编码相比 我有一个List
  • 动态数据源路由 - 数据源路由器未初始化

    我指的是这个article https spring io blog 2007 01 23 dynamic datasource routing 其中我们可以使用 Spring Framework 中的 AbstractRoutingDat
  • 如何使用 LWP 和正则表达式抓取 javascript 函数的日期参数?

    我在从特定网页抓取日期时遇到困难 因为该日期显然是传递给 JavaScript 函数的参数 我过去写过一些简单的抓取工具 没有任何重大问题 所以我没想到会出现问题 但我正在努力解决这个问题 该页面有 5 6 个日期 采用常规 yyyy mm
  • 为什么 getElementById 不适用于文档元素内的元素? [复制]

    这个问题在这里已经有答案了 如果你使用getElementById与文件类似 document getElementById那么它总是有效的 但是 如果我们对一个元素执行相同的操作x like x getElementById 然后它返回一
  • 如何在 primefaces 数据表中显示可变数量的列

    我有以下数组列表 class Report private String manufacturer private String color private List
  • 代码覆盖率结果窗口中的额外类

    在 Visual Studio 2010 中运行自动化测试后 代码覆盖率结果 选项卡显示一些我不明白的内容 接受测试的类之一称为 ApplicationData 它显示在代码覆盖率列表中 但它的变体也会出现 在本例中出现了三次 见下文 如果
  • 如何在 Javascript 中比较 C# Viewbag 中的值?

    我想比较一个布尔值Viewbag在 JavaScript 中 所以一开始我尝试了这个 if Viewbag MyBoolValue do sth 但后来我在控制台中出现错误 例如 Value False True is not declar
  • django:如何从包含外键的多个模型制作一种表单

    我正在尝试在一页上制作一个使用多个模型的表单 这些模型相互参考 我在验证表单时遇到问题 因为我不知道如何将表单中使用的两个模型的 id 获取到表单中以进行验证 我在模板中使用了隐藏键 但我不知道如何使其在视图中工作 我的代码如下 views
  • 如何使用笔记本jupyter在html中发布R代码

    我看到很多人谈论使用 jupyter 笔记本将代码转换和共享为 HTML 就像小菜一碟 但它对我来说变成了一场噩梦 我确实可以通过使用下拉菜单下载代码将其转换为 html 但它只能在我自己的计算机上访问 如果我将其作为链接发送给其他人 他们