uv - 一个现代化的python项目管理工具

特点

  1. 快:uv的底层采用 Rust 实现,利用多线程和异步 I/O 技术,依赖解析速度比pip快 10-100倍,安装速度提升 50% 以上
  2. 全:uv 集成了虚拟环境管理、依赖管理、Python 版本管理、工具管理等多种功能。
  3. 稳:uv 提供了与 pip 高度兼容的接口,支持传统的 requirements.txt 文件,同时兼容 pyproject.toml

设置uv

  1. 开启shell自动补全
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
echo 'eval "$(uv generate-shell-completion zsh)"' >> ~/.zshrc

安装与项目无关的工具

uv 中,可以通过 uv tool install 命令安装与项目无关的工具。这些工具会被安装到隔离的虚拟环境中,不会影响全局环境或其他项目。例如:

uv tool install ruff

安装完成后,可以通过以下命令直接运行工具。例如:

uvx ruff check

uv+conda模式

在深度学习开发中,有时候还会使用conda安装非python依赖。而uv只能安装python包,好在condauv可以共存,作者使用conda管理环境+安装非python包,uv作为一个高效的python包管理器,具体实现如下:

  1. 安装好conda和uv之后,首先使用conda创建环境
conda create -n project python==3.12
  1. 使用conda安装非python包(以cuda 11.8为例)
conda install nvidia/label/cuda-11.8.0::cuda nvidia/label/cuda-11.8.0::cuda-nvcc
  1. 使用uv安装python包
uv pip install -r requirments.txt

但是, 使用conda管理环境相比起uv有一个坏处——不能随时切换python版本。

转载时请包括本文地址:https://dw-dengwei.cn/posts/uv