**Jupyter**（聆聽i/ˈdʒuːpɪtə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"结尾。

Jupyter Notebook文档可以通过Web界面中的「Download As」，通过nbconvert库或shell中的"jupyter nbconvert"命令行界面，转换为许多的开源标准输出格式（HTML、演示、LaTeX、PDF、reStructuredText、Markdown、Python)。

为了简化Jupyter Notebook文档在Web上的，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是一个负责处理各种类型的请求（代码执行、代码补全、检查）和提供回复的程序。内核通过使用ØMQ与Jupyter的其他组件，因此可以在相同的或远程的机器上。与许多其他类似于Notebook的接口不同，在Jupyter中，内核并不知道它们被附加到特定的文档，并且可以同时从多个连接到它们。通常，内核是实现的，允许执行一种语言，但有几个例外。

Jupyter附带IPython作为默认内核，并通过ipykernel包装器提供引用实现。许多语言都有各种和特性的内核。

### 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项目的一部分，但最终被接管。截止到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发行版)

参考文献
----

1. 1 2 . 2018-04-20  [2018-05-03]. （原始内容存档于2020-12-01）.
2. ↑ .  [2018-12-17]. （原始内容存档于2020-11-12）.
3. ↑ .  [2018-12-17]. （原始内容存档于2020-11-11）.
4. ↑  .
5. ↑ . GitHub.  [2018-12-17]. （原始内容存档于2020-11-11）.
6. ↑ .  [2018-12-17]. （原始内容存档于2017-06-29）.
7. ↑  sshirokov.. The GitHub Blog. 2015-05-07  [2018-04-10]. （原始内容存档于2018-12-07） （美国英语）.
8. ↑ . Jupyter Blog. 2015-05-07  [2018-04-10].
9. ↑ .  [2018-12-17]. （原始内容存档于2020-10-21）.
10. ↑ .  [2018-12-17]. （原始内容存档于2020-02-21）.
11. ↑ .  [2018-12-17]. （原始内容存档于2021-02-04）.
12. ↑ .  [2018-12-17]. （原始内容存档于2020-10-08）.
13. 1 2 3  Somers, James.. The Atlantic.  [2018-04-10]. （原始内容存档于2019-11-09） （美国英语）.
14. ↑ . jupyterhub.readthedocs.io.  [2020-11-06].
15. ↑ . Jupyter Blog. 2018-02-20  [2018-05-04]. （原始内容存档于2019-06-04）.
16. ↑ . Amazon Web Services, Inc.  [2018-05-09]. （原始内容存档于2021-02-02） （美国英语）.
17. ↑ . research.google.com.  [2018-05-09]. （原始内容存档于2021-02-03）.
18. ↑ . notebooks.azure.com.  [2018-05-09]. （原始内容存档于2020-11-29）.
19. ↑ . Quartz.  [2018-09-06]. （原始内容存档于2020-12-02） （美国英语）.
20. ↑ . GitHub.  [2018-09-06]. （原始内容存档于2019-02-16） （英语）.
21. ↑ . losc.ligo.org.  [2018-05-04]. （原始内容存档于2016-02-15） （英语）.
22. ↑ . paulromer.net.  [2018-04-15]. （原始内容存档于2020-11-05） （美国英语）.
23. ↑ . ipython.org.  [2018-05-03]. （原始内容存档于2020-11-14）.
24. ↑ . ipython.org.  [2018-05-03]. （原始内容存档于2020-07-21）.
25. ↑  Perez, Fernando.  (PDF). ipython.org. December 28, 2015  [May 3, 2018]. （原始内容存档 (PDF)于2020-10-07）.
26. ↑ . helmsleytrust.org.  [2018-05-03]. （原始内容存档于2020-01-03） （英语）.
27. ↑ . ACM Awards. Association for Computing Machinery.  [2016年4月28日]. （原始内容存档于2016-05-05）.
28. ↑ .  [2019-03-03]. （原始内容存档于2021-02-03）.
29. ↑ .  [2019-03-03]. （原始内容存档于2021-02-03）.
30. ↑ .  [2018-12-17]. （原始内容存档于2020-11-29）.
31. ↑ .  [2019-03-03]. （原始内容存档于2020-12-02）.
32. ↑ .  [2019-03-03]. （原始内容存档于2020-12-09）.

另请参阅
----

* GNU Octave
* IPython
* RStudio
* SageMath
* Scilab
* Spyder
* Wolfram Mathematica

外部链接
----

* 自由软件主题

* 官方网站