Show HN: Juvio – 用于 Jupyter 的 UV 内核
Juvio 是一个为 Jupyter Notebook 设计的内核,旨在实现可复现、依赖感知且对 Git 友好的环境。它通过内联依赖管理,允许直接在 notebook 中安装包,并将依赖项以元数据形式保存。Juvio 自动创建并使用临时的虚拟环境(基于 `uv`),确保 notebook 运行在正确的 Python 版本和包版本下。它还支持将 notebook 转换为 script 风格,简化版本控制。Juvio 简化了依赖管理,保证了可复现性,并提供了更简洁的 Git diff,无需额外的 lock 文件或 requirements 文件。
Juvio:可复现、依赖感知且对 Git 友好的 Jupyter Notebook
🚀 功能特性
-
💡 内联依赖管理
直接从 notebook 中安装包:
%juvio install numpy pandas
依赖项直接以元数据(PEP 723 风格)的形式保存在 notebook 中,例如:
# /// script # requires-python = "==3.10.17" # dependencies = [ # "numpy==2.2.5", # "pandas==2.2.3" # ] # ///
-
⚙️ 自动环境设置
当 notebook 被打开时,Juvio 会自动在一个临时的虚拟环境(使用
uv
)中安装依赖项,确保 notebook 使用正确版本的包和 Python 运行。 -
📁 对 Git 友好的格式
Notebook 会在使用
# %%
标记的情况下,动态地转换为 script 风格的格式,从而简化 diff 和版本控制:# %% %juvio install numpy # %% import numpy as np # %% arr = np.array([1, 2, 3]) print(arr) # %%
🧑💻 如何使用
1. 安装 Juvio:
pip install juvio
jupyter labextension enable juvio-frontend
2. 确保你已经安装了 uv:
https://docs.astral.sh/uv/getting-started/installation/
3. 启动 JupyterLab 并创建一个 Juvio Notebook。
4. 在 notebook 中安装必要的包并运行你的代码
%juvio install ...
依赖项会被追踪,环境是可复现的,并且你的 notebook 会保持 Git 清洁 ✨
为什么使用 Juvio?
- 不需要额外的 lock 文件或者 requirements 文件
- 保证可复现性
- 更简洁的 Git diff
技术支持
uv
– 超快的 Python 包管理PEP 723
– Python 内联依赖标准- 类似于
jupytext
的格式,便于版本控制
关于
用于 Jupyter 的 UV 内核