Jupyter:交互式计算的开源基石

Jupyter 在 GitHub 上已经拿到 15,315 Star 了。

这个项目是 Python 数据科学生态中使用频率最高的工具之一。它提供了一个基于浏览器的交互式编程环境,让开发者在网页里写代码、跑分析、画图表、做笔记,所有操作在同一个界面内完成。

正文顶部截图

1、 解决的核心问题

Jupyter 出现之前,数据分析和科学计算的流程是割裂的。IDE 里写代码,终端里跑结果,Word 里写报告,matplotlib 弹出的窗口里看图。迭代一次要切四个窗口。

Jupyter 用一个浏览器标签页把这些全收了进来。代码块和输出结果交替排列,Markdown 笔记穿插其中,图表直接内嵌在页面上。整个分析过程变成了一张可以滚动阅读的计算记录,对探索性数据分析的效率提升很直接。

2、 不止一个工具

Jupyter 是一个项目家族。最广为人知的是 Jupyter Notebook,它把代码、文档、图表糅合在一个 .ipynb 文件里。但这只是起点。

JupyterLab 是新一代界面,更接近完整 IDE,支持多标签页、文件浏览器和终端模拟。JupyterHub 面向教学和团队场景,能在一台服务器上给几十个用户分配独立的计算环境。Jupyter Book 则把 Notebook 编译成静态网站或 PDF,科研团队用这个来发布可复现的论文。

jupyter/jupyter 这个仓库担任的是项目文档和元包管理的角色。文档用 Sphinx 引擎构建,源文件混合使用 reStructuredText 和 MyST Markdown 编写,两种格式在交叉引用和代码示例方面都表现不错。

README区域截图

3、 文档构建流程

构建 Jupyter 文档的最简方式是借助 nox 自动化工具:

nox -s docs

nox 会自动创建虚拟环境、安装 Sphinx 和相关依赖,然后把文档构建到 docs/build/html 目录。如果想边写文档边预览效果,换这条命令:

nox -s docs-live

它会启动一个支持热更新的本地服务器,源码有改动网页自动刷新。

不想依赖 nox 的话,手动构建也完全可行:用 conda 创建环境,再走 make html 生成 HTML 文件。

4、 谁在用

数据科学家用它做探索性分析和可视化,机器学习工程师在 Notebook 里调参、记录实验、画 loss 曲线,教育工作者用它做互动教材,学生在浏览器里直接跑代码示例。科研人员用 Jupyter Book 把分析过程和论文结论打包成可复现的文档。

Jupyter 已经成为 Python 数据生态中绕不开的基础设施。

包成可复现的文档。

Jupyter 已经成为 Python 数据生态中绕不开的基础设施。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐