Jupyter

Jupyter（ər）是一個非營利組織，旨在“為數十種編程語言的交互式計算開發開源軟件，開放標準和服務”。2014年由Fernando Pérez從IPython中衍生出來，Jupyter支持幾十種語言的執行環境。Jupyter項目開發並支持交互式計算產品Jupyter Notebook（文件格式是.ipynb文件）、JupyterHub和JupyterLab。

**歷史**
2014年，Fernando Pérez宣佈從IPython中衍生出一個名為Jupyter的項目。IPython繼續以Python shell和Jupyter內核的形式存在，而IPython Notebook和其他與語言無關的部分移到了Jupyter名下。 它支持幾十種語言的執行環境（也就是內核），這些語言包括Julia、R、Haskell、Ruby，當然還有Python（通過IPython內核）。

**產品理念**
Jupyter項目的經營理念是通過開發開源軟件，支持所有編程語言之間的交互式數據科學和科學計算。根據Jupyter項目網站所言，“Jupyter將永遠是100%的開源軟件，所有人都可以免費使用，並在修改後的BSD許可的自由條款下發布。”

**產品**

**Jupyter Notebook**
Jupyter Notebook（前身是IPython Notebook）是一個基於Web的交互式計算環境，用於創建Jupyter Notebook文檔。Jupyter Notebook文檔是一個JSON文檔，包含一個有序的輸入/輸出單元格列表，這些單元格可以包含代碼、文本（使用Markdown語言）、數學、圖表和富媒體 (Rich media)，通常以“.ipynb”結尾-{zh-cn:擴展; zh-hant:附檔名}-。
Jupyter Notebook文檔可以通過Web界面中的「Download As」，通過nbconvert庫或shell中的“jupyter nbconvert”命令行界面，轉換為許多的開源標準輸出格式（HTML、演示-{zh-cn:幻燈片; zh-tw:投影片}-、LaTeX、PDF、reStructuredText、Markdown、Python)。
為了簡化Jupyter Notebook文檔在Web上的-{zh-cn:可視化; zh-tw:視覺化}-，nbconvert庫是通過nbviewer提供的一項服務，它可以獲取任何公開可用的Notebook文檔的URL，將其動態轉換為 HTML 並顯示給用戶。
IPython Notebook interface
Jupyter Notebook提供了一個基於瀏覽器的REPL，它建立在一些流行的開源庫之上:- IPython- ØMQ- Tornado（Web服務器）- jQuery- Bootstrap（前端框架）- MathJax
Jupyter Notebook允許使用多種語言進行編程。在2.3版本（2014年10月）中，有49個與Jupyter兼容的內核，可以用於許多編程語言，包括Python、R、Julia和Haskell。
IPython在0.12版本（2011年12月）中添加了Notebook界面，2015年更名為Jupyter Notebook（IPython 4.0 - Jupyter 1.0）。Jupyter Notebook類似於Maple、Mathematica和SageMath等程序的筆記本界面，SageMath是一種計算界面風格，起源於Mathematica在20世紀80年代。據《大西洋》雜誌報道，在2018年初，用戶對Jupyter的興趣超過了Mathematica Notebook界面的流行程度。

**Jupyter Kernels**
Jupyter Kernel是一個負責處理各種類型的請求（代碼執行、代碼補全、檢查）和提供回覆的程序。內核通過-{zh-cn:網絡; zh-hant:網路}-使用ØMQ與Jupyter的其他組件-{zh-cn:通信; zh-tw:通訊}-，因此可以在相同的或遠程的機器上。與許多其他類似於Notebook的接口不同，在Jupyter中，內核並不知道它們被附加到特定的文檔，並且可以同時從多個-{zh-cn:客戶機; zh-hant:客戶端}-連接到它們。通常，內核是實現的，允許執行一種語言，但有幾個例外。
Jupyter附帶IPython作為默認內核，並通過ipykernel包裝器提供引用實現。許多語言都有各種-{zh-cn:質量; zh-hant:品質}-和特性的內核。

**JupyterHub**
JupyterHub 是一個用於Jupyter Notebook的多用戶服務器。它通過生成、管理和代理許多單一的Jupyter Notebook服務器來支持許多用戶。

**JupyterHub API**
JupyterHub 向外暴露了以 REST 風格的 API 供開發者們使用，可參閱：
它包攬了一系列對 Jupyter 的操作，諸如生成用戶環境，配置環境等。

**JupyterLab**
JupyterLab是Jupyter項目的下一代用戶界面。它在一個靈活且強大的用戶界面中提供了經典的Jupyter Notebook（筆記本、終端、文本編輯器、文件瀏覽器、豐富輸出 (Rich Text) 等）所有熟悉的構建模塊。第一個穩定版本於2018年2月20日發佈。

**行業應用**
Jupyter Notebook已經成為雲計算的一個流行的用戶界面，主要的雲提供商已經採用了Jupyter Notebook或其衍生工具作為雲用戶的前端界面。例如亞馬遜的SageMaker Notebook、Google的Colaboratory以及微軟的Azure Notebooks

**Collaboratory**
Collaboratory（也稱為Colab）是一個免費的Jupyter Notebook環境，它在雲中運行，並將筆記本存儲在Google雲端硬盤上。Collaboratory最初是Jupyter項目的一部分，但最終被-{zh-hans:谷歌; zh-hant:Google}-接管。截止到2018年9月，Collaboratory只支持Python 2和Python 3內核，不支持其他Jupyter內核，比如Julia和R。

**媒體報道**
 2016年2月11日，LIGO宣佈首次觀測引力波。這次發佈了原始的科學數據以及包含Python代碼的Jupyter Notebook文件，用於處理數據並從發現論文中複製數據。- 2018年4月5日，《大西洋》雜誌發表了一篇名為《科學論文過時了》的文章，討論了Jupyter Notebook和Mathematica Notebook在未來科學出版中的作用。這篇文章引起了包括經濟學家保羅·羅默在內的著名科學家和學者的回應。

**資助和獎勵**
 2012年，Fernando Pérez因其在IPython（Jupyter項目的前身）上的工作而獲得自由軟件基金會的自由軟件進步獎。- 2013年，IPython團隊獲得了艾爾弗·斯隆基金會115萬美元的資助，該基金會資助了導致Jupyter項目誕生的早期工作。- 2015年，Jupyter項目被資助來自Leona M.和Harry B. Helmsley慈善信託基金，Gordon和Betty Moore基金會以及艾爾弗·斯隆基金會的聯合600萬美元，資助工作導致的擴展功能核心Jupyter工具，以及JupyterLab的創建。- 2018年5月2日，Jupyter項目指導委員會榮獲2017年ACM軟件系統獎，這是一個年度獎項，它表彰“對技術概念和商業接受度方面產生了持久影響的軟件系統”的個人或組織。

**Jupyter**

**Online**
 Binder- Colaboratory- Azure Notebooks

**Windows**
 Jupyter Portable
*Anaconda (Python發行版)

**Mac**
Anaconda (Python發行版)

**Linux**
 Jupyter Lab
*Anaconda (Python發行版)

**參考文獻**

**另請參閱**
 GNU Octave- IPython- RStudio- SageMath- Scilab- Spyder- Wolfram Mathematica

**外部鏈接 ==