APP下载

对 Python 开发者而言 IPython 仍然是 Jupyter Notebook 的核心

消息来源:baojiabao.com 作者: 发布时间:2026-05-11

报价宝综合消息对 Python 开发者而言 IPython 仍然是 Jupyter Notebook 的核心

Jupyter 专案提供的魔法般的开发体验很大程度上得益于它的 IPython 基因。

-- Matthew Broberg(作者)

最近刚刚写过我为什么觉得觉得 Jupyter 专案(特别是 JupyterLab)提供了一种 魔法般的 Python 开发体验 。在研究这些不同专案之间的关联的时候,我回顾了一下 Jupyter 最初从 IPython 分支出来的这段历史。正如 Jupyter 专案的 大拆分™ 宣告 所说:

“如果你不明白 Jupyter 是什么,这么说吧,它拥有和 IPython 同样的程式码,并且是由同一批人开发的,只不过取了一个新名字、安了一个新家。”

下面这个注脚进一步说明了这一点:

“我从宣告中解读出来的资讯是,‘Jupyter 和 IPython 非常相似,但是拥有多种语言’,这也可以很好地解释为什么这个专案的名字已经不再需要包含 Python,因为当时它已经支援多种语言了。”

我明白 Jupyter Notebook 和 IPython 都是从同样的源代码里分支出来的,但是不太清楚 IPython 专案的现状。在大拆分™ 之后它是已经不再被需要了,还是在以另一种方式延续著?

后来我惊讶地发现,IPython 仍然不断在为 Python 使用者提供价值,它正是 Jupyter 体验的核心部分。下面是 Jupyter 常见问题页面的一段撷取:

有什么语言是需要预装的吗?

是的,安装 Jupyter Notebook 会首先安装 IPython 核心。这样我们就可以在 notebook 上执行 Python 语言了。

现在我明白了,在 JupyterLab(以及 Jupyter Notebook)上编写 Python 程式仍然需要依赖 IPython 核心的持续开发。不仅如此,IPython 还充当了最为强大的预设核心的角色,根据 这份文件 ,它是其它语言核心之间的枢纽,节省了很多开发时间和精力。

现在唯一的问题是,IPython 本身可以做什么呢?

IPython 如今的作用

IPython 提供了一个强大的、互动性的 Python shell,以及 Jupyter 的核心。安装完成之后,我可以在任何命令列执行 ipython 本身,将它当作一个(比预设 Python shell 好太多的)Python shell 来使用:

$ ipython

Python 3.7.3 (default, Mar 27 2019, 09:23:15)

Type \'copyright\', \'credits\' or \'license\' for more information

IPython 7.4.0 -- An enhanced Interactive Python. Type \'?\' for help.

In [1]: import numpy as np

In [2]: example = np.array([5, 20, 3, 4, 0, 2, 12])

In [3]: average = np.average(example)

In [4]: print(average)

6.571428571428571

这就让我们发现了一个更为重要的问题:是 IPython 让 JupyterLab 可以在专案中执行程式码,并且支援了一系列被称为 Magic 的功能(感谢 Nicholas Reith 在我上一篇文章的评论里提到这点)。

IPython 让魔法成为现实

JupyterLab 和其它使用 IPython 的前端工具可以让你感觉像是在最喜欢的 IDE 或者是终端模拟器的环境下工作。我非常喜欢 点档案 快捷键功能,Magic 也有类似点档案的特征。比如说,可以试一下 %bookmark 这个命令。我把预设开发资料夹 ~/Develop 关联到了一个可以在任何时候直接跳转的快捷方式上。

Screenshot of commands from JupyterLab

%bookmark、%cd,以及我在前一篇文章里介绍过的 ! 操作符,都是由 IPython 支援的。正如这篇 文件 所说:

Jupyter 使用者你们好:Magic 功能是 IPython 核心提供的专属功能。一个核心是否支援 Magic 功能是由该核心的开发者针对该核心所决定的。

写在最后

作为一个好奇的新手,我之前并不是特别确定 IPython 是否仍然和 Jupyter 生态还有任何联络。现在我对 IPython 的持续开发有了新的认识和,并且意识到它正是 JupyterLab 强大的使用者体验的来源。这也是相当有才华的一批贡献者进行最前沿研究的成果,所以如果你在学术论文中使用到了 Jupyter 专案的话别忘了引用他们。为了方便引用,他们还提供了一个 现成的引文 。

如果你在考虑参与哪个开源专案的贡献的话,一定不要忘了 IPython 哦。记得看看 最新发布说明 ,在这里可以找到 Magic 功能的完整列表。

via: https://opensource.com/article/19/6/ipython-still-heart-jupyterlab

作者: Matthew Broberg 选题: lujun9972 译者: chen-ni 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点选“了解更多”可访问文内连结

2020-02-03 12:03:00

相关文章