IPython 仍然是 Python 开发者 Jupyter Notebooks 的核心

Jupyter 项目起源于 IPython,这对于它提供的神奇开发体验仍然至关重要。
134 位读者喜欢这篇文章。
I love Free Software FSFE celebration

FSFE, Markus Meier, CC0

我最近写了一篇文章,讲述了我如何发现 Jupyter 项目,特别是 JupyterLab,是一种 神奇的 Python 开发体验。在研究各个项目之间的关联时,我回顾了 Jupyter 如何从 IPython 分叉而来。正如 Jupyter 项目的 The Big Split™ 公告 所解释的那样:

“如果有人对 Jupyter 是什么感到困惑 [1],它与 IPython 中的代码完全相同,由同一批人开发,只是换了个新家,起了个新名字。”

其中 [1] 链接到一个脚注,进一步阐明:

“我在公告发布后立即看到 ‘Jupyter 就像 IPython,但与语言无关’,这很好地说明了为什么该项目不再需要在名称中包含 Python,因为它当时已经是与语言无关的了。”

Jupyter Notebook 和 IPython 从相同的源代码分叉出来的事实对我来说很有意义,但我对 IPython 项目的现状感到困惑。在 The Big Split™ 之后,它是否不再需要了,还是以不同的方式继续存在?

我很惊讶地得知 IPython 的重要性继续为 Python 爱好者增加价值,并且它是 Jupyter 体验的重要组成部分。以下是 Jupyter FAQ 的一部分:

是否预装了任何语言?

是的,安装 Jupyter Notebook 也会安装 IPython 内核。这允许使用 Python 编程语言在 notebook 上工作。

我现在明白了,在 JupyterLab(和 Jupyter Notebook)中编写 Python 代码依赖于 IPython 作为其内核的持续开发。不仅如此,IPython 还是强大的默认内核,并且根据 文档,它可以充当其他语言内核的通信总线,从而节省大量时间和开发精力。

问题仍然存在,仅仅使用 IPython 我能做什么?

IPython 今天的功能

IPython 既提供了强大的交互式 Python shell,又提供了 Jupyter 内核。安装后,我可以从任何命令行单独运行 ipython,并将其用作(比默认 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 能够执行每个项目中的代码,并且它还为大量被称为魔法的功能提供支持(感谢 Nicholas Reith 在我之前文章的评论中提到了这一点)。

变得神奇,感谢 IPython

JupyterLab 和其他使用 IPython 内核的前端可以像您最喜欢的 IDE 或终端模拟器环境一样。我非常喜欢 dotfiles 如何让我能够使用快捷方式,而魔法也具有一些类似 dotfile 的行为。例如,查看 %bookmark。我已经将我的默认开发文件夹 ~/Develop 映射到一个快捷方式,我可以随时运行该快捷方式并直接进入其中。

Screenshot of commands from JupyterLab

%bookmark%cd 以及 ! 运算符(我在之前的文章中介绍过)的使用均由 IPython 提供支持。正如 文档 所述:

对于 Jupyter 用户:魔法是 IPython 内核特有的并由其提供。内核上是否提供魔法是由内核开发者在每个内核的基础上决定的。

总结

作为一个好奇的初学者,我不确定 IPython 是否仍然与 Jupyter 生态系统相关。现在我意识到 IPython 是 JupyterLab 强大用户体验的来源,因此我对 IPython 的持续开发有了新的认识。它也是一群才华横溢的贡献者的集合,他们参与了前沿研究,因此如果您在学术论文中使用 Jupyter 项目,请务必引用他们。他们通过这个 现成的引用条目 使引用变得容易。

当您考虑要贡献的开源项目时,请务必记住这一点,并查看 最新发行说明,以获取完整的魔法功能列表。

标签
I'm happiest at a microphone
Matt 曾是 EMC 存储专家、VMware vExpert,以及其他专有技术的爱好者。他现在专注于开源和 DevRel 采用。

1 条评论

感谢分享这些信息。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.