news 2026/6/8 14:02:23

Jupytext:让 Jupyter Notebook 变成纯文本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Jupytext:让 Jupyter Notebook 变成纯文本

文章目录

  • Jupytext:让 Jupyter Notebook 变成纯文本
    • 1、这工具解决什么问题
    • 2、文本格式的 Notebook 长什么样
    • 3、Paired Notebooks 怎么用
    • 4、命令行也能用
    • 5、适合哪些人

Jupytext:让 Jupyter Notebook 变成纯文本

Jupytext 在 GitHub 上已经拿到 7,179 Star 了。

这个工具只做一件事:把 Jupyter Notebook 转换成纯文本格式,同时保留双向同步能力。你可以在 IDE 里写代码、用 Git 做版本控制,随时还能回到 Jupyter 里运行。

1、这工具解决什么问题

用过 Jupyter Notebook 的人都遇到过这几个麻烦。

diff 看不懂。Notebook 是 JSON 格式,每次改动产生的 diff 都是大段元数据混杂代码,Review 起来很费劲。想在 Git 里追溯某一行代码是什么时候改的,几乎做不到。

IDE 不支持。Notebook 只能在 Jupyter 环境里编辑,想用自己的 IDE 做重构、跳转定义、批量替换,都不方便。

版本控制混乱。团队成员各自改一个 .ipynb 文件,合并冲突时基本只能靠人工比对。

Jupytext 把这些问题全解决了。它让 Notebook 以纯文本形式存在,同时和 .ipynb 保持同步。

2、文本格式的 Notebook 长什么样

Jupytext 支持几种纯文本格式,最常用的是py:percent和 Markdown。

py:percent格式就是一个普通的 .py 文件,用# %%标记单元格边界:

# %% [markdown]# 这是一个 markdown 单元格# %%deff(x):return3*x+1

这种文件在 IDE 里就是标准 Python 脚本,可以正常编辑、运行、调试。Git diff 也变成了一目了然的代码变更。

如果你的 Notebook 偏文档性质,也可以转成 .md 格式,支持 Myst Markdown、Quarto Markdown 等多种变体。

3、Paired Notebooks 怎么用

只存纯文本有个问题:输出结果丢了。Notebook 里的图表、运行结果在文本格式里是不保存的。

Jupytext 的解决方案是 Paired Notebooks。同一个 Notebook 同时保存两份文件:一份 .ipynb 保留输出,一份 .py 或 .md 供编辑和版本控制。

两份文件自动同步。你在 IDE 里改了 .py 文件,回到 Jupyter 点一下 reload,改动就生效了。在 Jupyter 里运行并保存,.py 文件也会更新。

开启配对很简单,在 JupyterLab 的 Command Palette 里选 “Pair Notebook with percent Script” 就行。也可以写一个配置文件:

# jupytext.toml formats = "ipynb,py:percent"

4、命令行也能用

Jupytext 提供了完整的命令行接口:

# 给已有 notebook 设置配对jupytext --set-formats ipynb,py:percent notebook.ipynb# 同步配对文件jupytext--syncnotebook.py# 格式转换jupytext--toipynb notebook.py# 把 notebook 灌给 linterjupytext--pipeblack notebook.ipynb

这些操作都可以集成到 CI 流程或者 Makefile 里。

5、适合哪些人

  • 用 Git 管理 Notebook 的团队开发者
  • 习惯在 IDE 里写代码、偶尔需要 Jupyter 交互式调试的人
  • 需要把 Notebook 转成脚本部署到生产环境的人

Jupytext 的安装很常规,pip 或 conda 都可以:

pipinstalljupytext

装完重启 JupyterLab,.py 和 .md 文件就会显示 Notebook 图标,右键即可当作 Notebook 打开。

install jupytext

装完重启 JupyterLab,.py 和 .md 文件就会显示 Notebook 图标,右键即可当作 Notebook 打开。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 14:02:12

如何在Windows上使用FlicFlac实现快速音频格式转换:完整指南

如何在Windows上使用FlicFlac实现快速音频格式转换:完整指南 【免费下载链接】FlicFlac Tiny portable audio converter for Windows (WAV FLAC MP3 OGG APE M4A AAC) 项目地址: https://gitcode.com/gh_mirrors/fl/FlicFlac 你是否曾遇到过这种情况&#x…

作者头像 李华
网站建设 2026/6/8 14:01:46

5步掌握OpenDroneMap:从无人机照片到专业3D地图的完整指南

5步掌握OpenDroneMap:从无人机照片到专业3D地图的完整指南 【免费下载链接】ODM A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. 📷 项目地址: https://gitcode.com/gh_mirrors/od/…

作者头像 李华
网站建设 2026/6/8 14:01:34

MPC56x Nexus调试接口连接器选型与硬件设计实战指南

1. 项目概述:为什么MPC56x的Nexus接口选型是个技术活在汽车电子或者工业控制领域摸爬滚打过的工程师,对飞思卡尔(现恩智浦)的MPC56x系列Power Architecture微控制器肯定不会陌生。这颗芯片性能强悍,常被用在发动机控制…

作者头像 李华
网站建设 2026/6/8 14:01:31

HCS12微控制器Flash与EEPROM保护机制深度解析与工程实践

1. 项目概述:HCS12微控制器非易失性存储器的深度防护实践在嵌入式系统,尤其是汽车电子和工业控制这类对可靠性要求近乎苛刻的领域,微控制器内部的非易失性存储器(NVM)不仅仅是存放代码和数据的“仓库”,更是…

作者头像 李华
网站建设 2026/6/8 13:59:51

DMA打包模式:解决嵌入式系统数据位宽不匹配的高效方案

1. 项目概述与核心价值在嵌入式系统开发,尤其是数字信号处理(DSP)应用中,我们常常会遇到一个经典难题:如何高效地将来自低速、窄数据位宽外设(比如一个8位的ADC或传感器)的连续数据流&#xff0…

作者头像 李华