Jupyter聆聽i/ˈpɪtər/)是一个非营利组织,旨在“为数十种编程语言的交互式计算开发开源软件,开放标准和服务”。2014年由Fernando Pérez从IPython中衍生出来,Jupyter支持几十种语言的执行环境。Jupyter项目开发并支持交互式计算产品Jupyter Notebook(文件格式是.ipynb文件)、JupyterHub和JupyterLab。

Project Jupyter
簡稱Jupyter
命名缘由JuliaPythonR语言
成立時間2015年,​9年前​(2015
創始人Fernando Pérez[*]
類型非營利組織
服务地区全球
官方語言
英文
目標旨在透過所有程式語言完成資料科學的交換與計算[1]
網站jupyter.org

历史

2014年,Fernando Pérez宣布从IPython中衍生出一个名为Jupyter的项目。[2]IPython继续以Python shell和Jupyter内核的形式存在,而IPython Notebook和其他与语言无关的部分移到了Jupyter名下。[3][4][5] 它支持几十种语言的执行环境(也就是内核),这些语言包括Julia、R、HaskellRuby,当然还有Python(通过IPython内核)。[6][7][8]

产品理念

Jupyter项目的经营理念是通过开发开源软件,支持所有编程语言之间的交互式数据科学和科学计算。根据Jupyter项目网站所言,“Jupyter将永远是100%的开源软件,所有人都可以免费使用,并在修改后的BSD许可的自由条款下发布。”[1]

产品

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、演示幻灯片、LaTeXPDFreStructuredTextMarkdownPython)。

为了简化Jupyter Notebook文档在Web上的可视化,nbconvert库是通过nbviewer提供的一项服务,它可以获取任何公开可用的Notebook文档的URL,将其动态转换为 HTML 并显示给用户。

 
IPython Notebook interface

Jupyter Notebook提供了一个基于浏览器的REPL,它建立在一些流行的开源库之上:

Jupyter Notebook允许使用多种语言进行编程。在2.3版本[9][10](2014年10月)中,目前有49个与Jupyter兼容的内核,可以用于许多编程语言,包括Python、R、Julia和Haskell。[11]

IPython在0.12版本(2011年12月)中添加了Notebook界面,2015年更名为Jupyter Notebook(IPython 4.0 - Jupyter 1.0)。[12]Jupyter Notebook类似于MapleMathematicaSageMath等程序的笔记本界面,SageMath是一种计算界面风格,起源于Mathematica在20世纪80年代。[13]据《大西洋》杂志报道,在2018年初,用户对Jupyter的兴趣超过了Mathematica Notebook界面的流行程度。[13]

Jupyter Kernels

Jupyter Kernel是一个负责处理各种类型的请求(代码执行、代码补全、检查)和提供回复的程序。内核通过網路使用ØMQ与Jupyter的其他组件通信,因此可以在相同的或远程的机器上。与许多其他类似于Notebook的接口不同,在Jupyter中,内核并不知道它们被附加到特定的文档,并且可以同时从多个客戶端连接到它们。通常,内核是实现的,允许执行一种语言,但有几个例外。

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

JupyterHub

JupyterHub 是一个用于Jupyter Notebook的多用户服务器。它通过生成、管理和代理许多单一的Jupyter Notebook服务器来支持许多用户。

JupyterHub API

JupyterHub 向外暴露了以 REST 风格的 API 供开发者们使用,可参阅:[14]

它包揽了一系列对 Jupyter 的操作,诸如生成用户环境,配置环境等。

JupyterLab

JupyterLab是Jupyter项目的下一代用户界面。它在一个灵活且强大的用户界面中提供了经典的Jupyter Notebook(笔记本、终端、文本编辑器、文件浏览器、丰富输出 (Rich Text) 等)所有熟悉的构建模块。第一个稳定版本于2018年2月20日发布。[15]

行业应用

Jupyter Notebook已经成为云计算的一个流行的用户界面,主要的云提供商已经采用了Jupyter Notebook或其衍生工具作为云用户的前端界面。例如亚马逊的SageMaker Notebook[16]Google的Colaboratory[17]以及微软的Azure Notebooks[18]

Collaboratory

Collaboratory(也称为Colab)是一个免费的Jupyter Notebook环境,它在云中运行,并将笔记本存储在Google云端硬盘上。Collaboratory最初是Jupyter项目的一部分,[19]但最终被谷歌接管。[20]截止到2018年9月,Collaboratory只支持Python 2和Python 3内核,不支持其他Jupyter内核,比如Julia和R。

媒体报道

  • 2016年2月11日,LIGO宣布首次观测引力波。这次发布了原始的科学数据以及包含Python代码的Jupyter Notebook文件,用于处理数据并从发现论文中复制数据。[21]
  • 2018年4月5日,《大西洋》杂志发表了一篇名为《科学论文过时了》的文章,讨论了Jupyter Notebook和Mathematica Notebook在未来科学出版中的作用。[13]这篇文章引起了包括经济学家保罗·罗默在内的著名科学家和学者的回应。[22]

资助和奖励

  • 2012年,Fernando Pérez因其在IPython(Jupyter项目的前身)上的工作而获得自由软件基金会的自由软件进步奖。
  • 2013年,IPython团队获得了艾尔弗·斯隆基金会115万美元的资助,[23][24]该基金会资助了导致Jupyter项目诞生的早期工作。[25]
  • 2015年,Jupyter项目被资助来自Leona M.和Harry B. Helmsley慈善信托基金,Gordon和Betty Moore基金会以及艾尔弗·斯隆基金会的联合600万美元,资助工作导致的扩展功能核心Jupyter工具,以及JupyterLab的创建。[26]
  • 2018年5月2日,Jupyter项目指导委员会荣获2017年ACM软件系统奖,这是一个年度奖项,它表彰“对技术概念和商业接受度方面产生了持久影响的软件系统”的个人或组织。[27]

Jupyter

Online

Windows

Mac

Linux

参考文献

  1. ^ 1.0 1.1 Project Jupyter - About Us. 2018-04-20 [2018-05-03]. (原始内容存档于2020-12-01). 
  2. ^ Project Jupyter // Speaker Deck. [2018-12-17]. (原始内容存档于2020-11-12). 
  3. ^ The Notebook, Qt console and a number of other pieces are now parts of Jupyter. [2018-12-17]. (原始内容存档于2020-11-11). 
  4. ^ The Big Split™. 
  5. ^ jupyter/design. GitHub. [2018-12-17]. (原始内容存档于2020-11-11). 
  6. ^ Project Jupyter | Home. [2018-12-17]. (原始内容存档于2017-06-29). 
  7. ^ sshirokov. GitHub + Jupyter Notebooks = <3. The GitHub Blog. 2015-05-07 [2018-04-10]. (原始内容存档于2018-12-07) (美国英语). 
  8. ^ Rendering Notebooks on GitHub – Jupyter Blog. Jupyter Blog. 2015-05-07 [2018-04-10]. 
  9. ^ What's new in IPython > Issues closed in the 2.x development cycle. [2018-12-17]. (原始内容存档于2020-10-21). 
  10. ^ What's new in IPython > 2.0 Series. [2018-12-17]. (原始内容存档于2020-02-21). 
  11. ^ Jupyter kernels > List of (some) IPython compatible kernels. [2018-12-17]. (原始内容存档于2021-02-04). 
  12. ^ Notebook's announcement- 0.12 release note. [2018-12-17]. (原始内容存档于2020-10-08). 
  13. ^ 13.0 13.1 13.2 Somers, James. The Scientific Paper Is Obsolete. The Atlantic. [2018-04-10]. (原始内容存档于2019-11-09) (美国英语). 
  14. ^ JupyterHub. jupyterhub.readthedocs.io. [2020-11-06]. [失效連結]
  15. ^ JupyterLab is Ready for Users – Jupyter Blog. Jupyter Blog. 2018-02-20 [2018-05-04]. (原始内容存档于2019-06-04). 
  16. ^ Amazon SageMaker on AWS. Amazon Web Services, Inc. [2018-05-09]. (原始内容存档于2021-02-02) (美国英语). 
  17. ^ Welcome to Colaboratory. research.google.com. [2018-05-09]. (原始内容存档于2021-02-03). 
  18. ^ Microsoft Azure Notebooks - Online Jupyter Notebooks. notebooks.azure.com. [2018-05-09]. (原始内容存档于2020-11-29). 
  19. ^ Nerds rejoice: Google just released its internal tool to collaborate on AI. Quartz. [2018-09-06]. (原始内容存档于2020-12-02) (美国英语). 
  20. ^ jupyter/colaboratory. GitHub. [2018-09-06]. (原始内容存档于2019-02-16) (英语). 
  21. ^ LIGO Open Science Center. losc.ligo.org. [2018-05-04]. (原始内容存档于2016-02-15) (英语). 
  22. ^ Jupyter, Mathematica, and the Future of the Research Paper – Paul Romer. paulromer.net. [2018-04-15]. (原始内容存档于2020-11-05) (美国英语). 
  23. ^ Sloan Foundation Grant — IPython. ipython.org. [2018-05-03]. (原始内容存档于2020-11-14). 
  24. ^ An Open Source Framework for Interactive, Collaborative and Reproducible Scientific Computing and EducationOpen Source Tools for Interactive, Collaborative and Reproducible Computing. ipython.org. [2018-05-03]. (原始内容存档于2020-07-21). 
  25. ^ Perez, Fernando. IPython 2015 Final Report - Sloan Foundation (PDF). ipython.org. December 28, 2015 [May 3, 2018]. (原始内容存档 (PDF)于2020-10-07). 
  26. ^ UC Berkeley and Cal Poly to Expand and Enhance Open-Source Software for Scientific Computing and Data Science | Helmsley Charitable Trust. helmsleytrust.org. [2018-05-03]. (原始内容存档于2020-01-03) (英语). 
  27. ^ Software System Award. ACM Awards. Association for Computing Machinery. [2016年4月28日]. (原始内容存档于2016-05-05). 
  28. ^ Binder. [2019-03-03]. (原始内容存档于2021-02-03). 
  29. ^ Colaboratory. [2019-03-03]. (原始内容存档于2021-02-03). 
  30. ^ Azure Notebooks. [2018-12-17]. (原始内容存档于2020-11-29). 
  31. ^ Jupyter Portable. [2019-03-03]. (原始内容存档于2020-12-02). 
  32. ^ Jupyter Lab. [2019-03-03]. (原始内容存档于2020-12-09). 

另请参阅

外部链接