uv 与 ty 强强联合

uv 与 ty 强强联合

💡 原文英文,约1000词,阅读约需4分钟。
📝

内容提要

Astral 发布 uv 与 ty 的实验性集成预览:ty 可借助 PEP 723 内联元数据识别脚本,并调用 uv 为每个脚本准备独立环境,从而在命令行和编辑器中提供类型检查、补全与跳转。同时新增 uv check 命令,可自动准备项目环境并调用 ty 检查单个包、整个工作区或脚本,并统一使用锁文件中的 ty 版本。该集成需 uv 0.12.3、ty 0.0.76 以上版本。

🔎

延伸解读

脚本类型检查的新方式

对于使用 PEP 723 内联元数据的 Python 脚本,ty 现在能借助 uv 为每个脚本单独准备环境,从而在命令行和编辑器中提供类型检查、补全与跳转。这意味着同一仓库中不同脚本可以声明各自的依赖和 Python 版本,互不干扰。开发者只需在脚本中内联声明依赖,保存后 uv 会自动同步环境,ty 则基于该环境提供准确的代码智能。

uv check 统一检查入口

新增的 uv check 命令将环境准备与类型检查合二为一:自动安装依赖并调用 ty 检查项目。它支持检查单个包(--package)、整个工作区(--all-packages)或独立脚本(--script)。该命令统一使用锁文件中记录的 ty 版本,确保开发者和 CI 环境一致,无需单独维护版本固定。未来还计划将 Ruff 集成进来,统一 lint 与类型检查。

实验性集成的使用门槛

该集成目前为实验性预览,需 uv 0.12.3 及以上、ty 0.0.76 及以上版本。在 VS Code 中启用需安装 uv 和 ty 扩展,并在设置中开启 ty.experimental.useUv。由于自动安装依赖可能执行第三方代码,脚本环境自动准备目前为可选功能。若从不运行 uv check,uv 的体验不受影响,ty 二进制会在首次调用时单独安装。

❓

Q&A

uv 和 ty 的集成目前是什么状态?

目前是实验性预览状态,已发布预览版。

ty 如何支持带有内联元数据的 Python 脚本?

ty 利用 PEP 723 内联元数据识别脚本,并调用 uv 为每个脚本准备独立环境,从而在命令行和编辑器中提供类型检查、补全与跳转。

uv check 命令有什么作用?

uv check 自动准备项目环境、安装依赖,并调用 ty 检查单个包、整个工作区或脚本,统一使用锁文件中的 ty 版本。

使用 uv 与 ty 的集成需要什么版本?

需要 uv 0.12.3 或更高版本,以及 ty 0.0.76 或更高版本。

如何在 VS Code 中启用 uv 集成以支持 PEP 723 脚本?

安装 uv 和 ty VS Code 扩展,然后在 VS Code 的 settings.json 中设置 "ty.experimental.useUv": "on"。

uv check 如何确保团队使用相同的 ty 版本?

uv check 自动使用项目锁文件中记录的 ty 版本,提交配置和锁文件后,开发者和 CI 运行 uv check 时会共享同一 ty 版本,无需单独维护版本固定。

🏷️

标签

➡️

继续阅读