将 uv 与 Jupyter 结合使用
Jupyter notebook 是一个流行的交互式计算、数据分析和可视化工具。 您可以通过几种不同的方式将 Jupyter 与 uv 结合使用,既可以与项目交互,也可以作为独立工具。
在项目中使用 Jupyter
如果您在 项目 中工作,您可以通过以下方式启动一个可以访问项目虚拟环境的 Jupyter 服务器
默认情况下,jupyter lab
将在 https://:8888/lab 启动服务器。
在 notebook 中,您可以像在项目中的任何其他文件中一样导入项目的模块。 例如,如果您的项目依赖于 requests
,则 import requests
将从项目的虚拟环境中导入 requests
。
如果您正在寻找对项目虚拟环境的只读访问权限,那么这就足够了。 但是,如果您需要从 notebook 中安装其他软件包,则需要考虑一些额外的细节。
创建内核
如果您需要从 notebook 中安装软件包,我们建议为您的项目创建一个专用内核。 内核使 Jupyter 服务器可以在一个环境中运行,而各个 notebook 在其自己独立的环境中运行。
在 uv 的上下文中,我们可以在为项目创建内核的同时,在隔离环境中安装 Jupyter 本身,如 uv run --with jupyter jupyter lab
中所示。 为项目创建一个内核可以确保 notebook 连接到正确的环境,并且从 notebook 中安装的任何软件包都安装到项目的虚拟环境中。
要创建一个内核,您需要安装 ipykernel
作为开发依赖项
然后,您可以使用以下命令为 project
创建内核
从那里,使用以下命令启动服务器
创建 notebook 时,从下拉列表中选择 project
内核。 然后使用 !uv add pydantic
将 pydantic
添加到项目的依赖项,或者使用 !uv pip install pydantic
将 pydantic
安装到项目的虚拟环境中,而无需将更改持久保存到项目的 pyproject.toml
或 uv.lock
文件中。 任何一个命令都将使 import pydantic
在 notebook 中工作。
在没有内核的情况下安装包
如果您不想创建内核,您仍然可以从 notebook 中安装软件包。 但是,有一些注意事项需要考虑。
虽然 uv run --with jupyter
在隔离环境中运行,但在 notebook 本身中,即使没有内核,!uv add
和相关命令也会修改项目的环境。
例如,从 notebook 中运行 !uv add pydantic
会将 pydantic
添加到项目的依赖项和虚拟环境中,这样 import pydantic
将立即工作,无需进一步配置或服务器重启。
但是,由于 Jupyter 服务器是“活动”环境,因此 !uv pip install
会将软件包安装到 Jupyter 的环境中,而不是项目环境中。 此类依赖项将在 Jupyter 服务器的生命周期内持续存在,但可能会在后续的 jupyter
调用中消失。
如果您正在使用依赖于 pip 的 notebook(例如,通过 %pip
magic),您可以在启动 Jupyter 服务器之前通过运行 uv venv --seed
将 pip 包含在项目的虚拟环境中。 例如,给定
notebook 中后续的 %pip install
调用会将软件包安装到项目的虚拟环境中。 但是,此类修改不会反映在项目的 pyproject.toml
或 uv.lock
文件中。
将 Jupyter 用作独立工具
如果您需要随时对 notebook 进行临时访问(即,以交互方式运行 Python 代码段),您可以随时使用 uv tool run jupyter lab
启动 Jupyter 服务器。 这将在隔离环境中运行 Jupyter 服务器。
将 Jupyter 与非项目环境结合使用
如果您需要在与 项目 不关联的虚拟环境中运行 Jupyter(例如,没有 pyproject.toml
或 uv.lock
),您可以通过将 Jupyter 直接添加到环境中来实现。 例如
从这里开始,import pydantic
将在 notebook 中工作,并且您可以通过 !uv pip install
甚至 !pip install
安装其他软件包。
从 VS Code 使用 Jupyter
您还可以从 VS Code 等编辑器中使用 Jupyter notebook。 要将 uv 管理的项目连接到 VS Code 中的 Jupyter notebook,我们建议为项目创建一个内核,如下所示
# Create a project.
$ uv init project
# Move into the project directory.
$ cd project
# Add ipykernel as a dev dependency.
$ uv add --dev ipykernel
# Open the project in VS Code.
$ code .
在 VS Code 中打开项目目录后,您可以通过从命令面板中选择“创建:新建 Jupyter Notebook”来创建一个新的 Jupyter notebook。 当提示您选择内核时,选择“Python 环境”并选择您之前创建的虚拟环境(例如,macOS 和 Linux 上的 .venv/bin/python
或 Windows 上的 .venv\Scripts\python
)。
注意
VS Code 要求项目环境中存在 ipykernel
。 如果您希望避免将 ipykernel
添加为开发依赖项,您可以直接使用 uv pip install ipykernel
将其安装到项目环境中。
如果您需要从 notebook 中操作项目的环境,您可能需要将 uv
添加为显式开发依赖项
从那里,您可以使用 !uv add pydantic
将 pydantic
添加到项目的依赖项,或者使用 !uv pip install pydantic
将 pydantic
安装到项目的虚拟环境中,而无需更新项目的 pyproject.toml
或 uv.lock
文件。