Project Jupyter
简称Jupyter
成立时间2015
类型nonprofit organization
目标To support interactive data science and scientific computing across all programming languages.
服务地区Worldwide
官方语言English
网站jupyter.org

Jupyter项目i/ˈpɪtər/)是一个非营利组织,旨在“为数十种编程语言的交互式计算开发开源软件,开放标准和服务”。2014年由Fernando Pérez从IPython中衍生出来,Jupyter项目支持几十种语言的执行环境。Jupyter项目的名称是对Jupyter支持的三种核心编程语言的引用,这三种语言是Julia、Python和R,也是对伽利略记录发现木星的卫星的笔记本的致敬。Jupyter项目开发并支持交互式计算产品Jupyter Notebook、JupyterHub和JupyterLab,这是Jupyter Notebook的下一代版本。

历史

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

2015年,GitHub和Jupyter项目宣布Jupyter Notebook文件格式(.ipynb文件)在GitHub平台上可以原生渲染。

哲学

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

产品

Jupyter Notebook

Jupyter Notebook(前身是IPython Notebook)是一个基于Web的交互式计算环境,用于创建Jupyter Notebook文档。Notebook一词可以通俗地引用许多不同的实体,主要是Jupyter Web应用程序、Jupyter Python Web服务器或Jupyter文档格式(取决于上下文)。Jupyter Notebook文档是一个JSON文档,遵循版本化模式,包含一个有序的输入/输出单元格列表,这些单元格可以包含代码、文本(使用Markdown语言)、数学、图表和富媒体,通常以“.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,它建立在一些流行的开源库之上:

Jupyter Notebook可以连接到许多内核(默认情况下,IPython内核附带了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服务器来支持许多用户。

JupyterLab

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

行业应用

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

Colaboratory

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

媒体报道

资助和奖励

Jupyter

Online

Windows

Mac

Linux

另请参阅

www.zuoweixin.com
问题反馈联系QQ:暂无联系方式,也可发qq邮箱。