火柴人武林大会
156.74M · 2026-02-04
uv是一个用 Rust 编写的、速度极快的 Python 包和项目管理器
pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等。pip 快 10-100 倍。curl 或 pip 安装。安装方式:
[macOS 和 Linux]
curl -LsSf https://astral.sh/uv/install.sh | sh
[windows]
powershell -ExecutionPolicy ByPass -c "irm | iex"
uv pip install 极速安装依赖,替代 pip install。uv venv 一键创建虚拟环境,替代 virtualenv。# 创建虚拟环境
uv venv #在 `.venv` 创建一个虚拟环境
uv venv my-name #在 `my-name` 创建一个虚拟环境
uv venv --python 3.11 #使用 Python 3.11 创建一个虚拟环境
#激活虚拟环境
[macOS 和 Linux]
source .venv/bin/activate
[windows]
.venvScriptsactivate
deactivate # 退出虚拟环境
uv venv --seed # 强制安装基础包(如pip, setuptools, wheel)
uv python install 安装和管理多版本 Python,替代 pyenv。uv.lock,确保团队依赖一致。
例如,在 Python 项目中,通常会用 requirements.txt(或 pyproject.toml)记录依赖,比如你写了:requests >= 2.20.0 #版本只要大于等于 2.20.0 就行
这种 “依赖版本不固定,会导致依赖不可重现,项目在不同环境、不同时间运行结果不一致” 的问题:
uv.lock:是 uv 生成的纯文本格式锁定文件,会记录下你当前环境中,所有依赖(包括主依赖、间接依赖)的「精确版本号」、下载来源、哈希值等信息,形成一份 “依赖快照”,可以把 “模糊依赖” 变成 “精确依赖”;它确保 “所有人安装的依赖完全一致” :当其他人拿到你的项目后,只要有这份 uv.lock,用 uv 安装依赖时,uv 会严格按照锁定文件中的精确版本、哈希值来安装,不会去下载任何新版本,哪怕官方已经发布了更高版本的 requests;验证依赖完整性:锁定文件中的哈希值,可以验证下载的依赖包是否被篡改,避免安装恶意或损坏的包;用 uv 安装依赖后,uv 会自动生成 / 更新 uv.lock,里面不会有 >=、<= 这种模糊符号,全是精确版本,比如: requests = { version = "2.28.2", source = "pypi", hash = "sha256:..." }
urllib3 = { version = "1.26.14", source = "pypi", hash = "sha256:..." }
(`urllib3` 是 `requests` 的间接依赖,没手动写,但它也会被精确记录)
官网:github.com/astral-sh/u…
文档:docs.astral.sh/uv/