内容提要
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 版本,无需单独维护版本固定。