簡體   English   中英

如何使用 notebook jupyter 在 html 中發布 R 代碼

[英]How publish R code in html using notebook jupyter

我看到很多人談論使用 jupyter notebooks 將代碼轉換和共享為 HTML 就像小菜一碟,但它已經變成了我的噩夢!

我可以確保通過使用下拉菜單下載我的代碼將它們轉換為 html,但它只能在我自己的機器上訪問,如果我將其作為鏈接發送給其他人,他們將看到:無法訪問此站點”。HTML 下載只在本地主機上提供一個鏈接,它不可共享。有誰知道它的方法是什么?我確實使用了 github,但這似乎只適用於 Jupyter Python 而不適用於 R。

這里有什么幫助嗎?

最后你提到使用 Github。 您可以使用它或 Github 的 Gist 站點直接以.ipynb形式(實際上是 json 編碼)共享筆記本,並且您發送鏈接的任何人都可以看到它很好地呈現為靜態。 您當然可以發布到 html,但是您需要托管 html 或使用githack鏈接到它。 始終可以選擇轉至 PDF 並通過電子郵件發送。 既然你談論轉換,我假設你不需要它是活躍的; 但是,使用 MyBinder.org 也可以這樣做,請參見此處的示例,您可以單擊頂部的“啟動”按鈕並啟動其他人以前制作的筆記本。

我將逐步解釋每一個建議,並進一步澄清。


GitHub 和 nbviewer 共享筆記本

如果筆記本是公開的,您可以使用 Github 共享它。 想象一下,您制作了一個公共存儲庫,並以.ipynb文件形式將筆記本放在那里。 (注意:所有這些步驟都可以直接在 Github 的 Web 界面中完成,而無需在本地計算機上安裝 git。)讓我們在這里用作理論示例。 如果你去那個index.ipynb ,你會看到一個筆記本index.ipynb列出。 點擊鏈接直接查看。 (您現在應該在這里。)筆記本可能會呈現,或者可能會嘗試超時。 Github 的渲染並不完美,所以不要依賴它。 更好的是使用 nbviewer 站點。 要使用 nbviewer 站點,您需要從地址欄中復制筆記本的 URL。 對於此示例,您將復制:

https://github.com/binder-examples/r/blob/master/index.ipynb

使用剪貼板中的該 URL,轉到位於https://nbviewer.jupyter.org/的 nbviewer 站點。 當您進入 nbviewer 的首頁時,將 URL 粘貼到頂部“輸入 Jupyter Notebook 的位置...”下方的表單中,然后單擊開始Go! . 這將帶你到一個漂亮的筆記本頁面,沒有任何 Github 標題/cruft。 請注意,筆記本中是 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 設置,它仍然會打開筆記本,但是當您嘗試運行時可能會出錯,因為默認情況下環境不完全兼容。

Gist 站點和 nbviewer 共享筆記本

此過程與“GitHub 和 nbviewer 共享筆記本”中描述的過程非常相似。 關於放置 notebook .ipynb文件的位置的前幾個步驟有所不同。 您可以訪問 Github 的 Gist 站點https://gist.github.com/ 該站點旨在共享代碼片段或僅幾個文件,並且沒有完整的 Github 存儲庫所具有的所有功能。 但是,它非常適合您的用途。 您可以粘貼.ipynb文件的內容或將其上傳到那里,然后在 nbviewer 上使用 URL,如“GitHub 和 nbviewer 共享筆記本”中所述。

用於共享筆記本 HTML 的 Gist 站點和 githack

此過程與“Gist 站點和 nbviewer 共享筆記本”中描述的過程非常相似。 但是,您上傳到 Gist 站點的內容和用於共享渲染的技術不同。 這次您需要將您提到的 HTML 文件放在 Gist 站點上。 在這一點上,它看起來像 HTML 代碼,而不是筆記本。 將 Gist 站點上頁面的 URL 復制到剪貼板。 轉到 raw.githack.com 站點,網址為http://raw.githack.com/ 將 URL 粘貼到頂部顯示粘貼 URL 的表單行中。 您現在將轉到呈現 HTML 的頁面。 您可以從地址欄中復制 URL 並與任何人共享,類似於使用 nbviewer 查看筆記本的方式。

Github 存儲庫和 githack 共享筆記本的 HTML

這與“Gist 站點和 githack 共享筆記本的 HTML”中描述的非常相似。 不同之處在於您將使用實際的 Github 存儲庫來存儲筆記本的 HTMl 版本。

共享筆記本的 PDF

你沒有提到這條路線。 所以我會保持簡短。 根據您安裝的 Jupyter 或使用它的位置,我發現保存 PDF 表單不一致。 一個應該有可能的地方,就是這里 如果你去那里按下launch binder按鈕,你可以啟動一個保存 PDF 的會話。 您需要專門使用“ Export to PDF圖標,該圖標將出現在筆記本正上方的菜單欄上。

共享筆記本的活動形式

我也會保持簡短,因為它在上面的部分中以各種形式涉及,並且比使用 nbviewer 更先進。

在“GitHub 和 nbviewer 共享筆記本”部分的末尾描述了執行此操作的一種方法。 您也可以在不使用 nbviewer 的情況下執行此操作。 讓我們回到這里的示例存儲庫。 復制該頁面頂部的 URL:

https://github.com/binder-examples/r

現在轉到位於https://mybinder.org/的 MyBinder.org 站點並將該 URL 粘貼到表單頂部,其中顯示“GitHub 存儲庫名稱或 URL”,然后單擊啟動。 這將使用它在該存儲庫中看到的特殊文件配置的環境啟動臨時會話。 您將能夠單擊筆記本index.ipynb並運行它。 切勿共享正在運行的會話鏈接,因為它是臨時的。

要獲得共享內容以便其他人可以使用您的筆記本啟動自己的會話,您需要使用https://mybinder.org/上的更多表單選項進行探索,以生成可以與他人共享的鏈接。 例如,您可以添加特定筆記本的路徑,以便會話啟動時,該筆記本已打開。 填寫完要復制以共享的表單后,您將在“復制下面的 URL 並與他人共享您的活頁夾:”下看到生成的 URL。 您會看到該表單還允許為可點擊的徽章制作代碼,就像您在https://github.com/binder-examples/r看到的那樣。

請注意,使用可以運行的筆記本啟動會話是有效的,因為該存儲庫已配置為安裝 irkernel。 在沒有一些配置的情況下,使用 R 運行任何存儲庫中的任何筆記本是行不通的。 (默認情況下只有 Python 內核。)但是,我一直引用的示例存儲庫可以用作模板, Use this template此處的“ Use this template按鈕創建您自己的新存儲庫,以簡化執行此操作所需的步驟。 還有Holepunch可以幫助執行類似的步驟來共享基於 R 的代碼。

當你想要共享一個私人筆記本.ipynb文件並讓別人查看或運行它時結合技術

您還可以向人們發送 notebook .ipynb文件,然后他們有一些選擇。 他們可以使用nbpreview ,它允許您上傳本地筆記本.ipynb文件並從本地源渲染它。 如果是notebook里面敏感的工作,又擔心上傳,也可以在本地安裝運行nbpreview,看這里 也可以在本地安裝 nbviewer 並查看它。 或者他們可以使用他們的 Jupyter 系統運行您發送的筆記本文件。 因為其中一些選項的元素依賴於高級技能和知道如何安裝東西,所以它們可能並不適合所有參與者。

繞過這些障礙的一種方法是設置一個存儲庫,該存儲庫能夠通過 MyBinder 提供一個完全適合運行私人筆記本的環境,然后建議用戶如何啟動會話並上傳您單獨與他們共享的筆記本,例如通過電子郵件。 您可以在此處查看有關 MyBinder.org 安全性的更多信息。

等等……還有更多

隨着筆記本變得越來越流行,使用和共享它們的方式也越來越多。 這個答案只涉及一些更開放、更公開的方式。 當您通過授權添加 Jupyter Hub 時,還有更多功能,因為您可以在 JupyterHub 網絡中共享指向您自己的筆記本的鏈接。 現在也有商業產品。 您也可以隨時使用 Google Colab 或 Azure 筆記本來共享它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM