uv——极速、统一的Python包和项目管理器

uv 是一个基于 Rust 的高速、统一的 Python 包和项目管理器,旨在取代 pippip-toolsvirtualenvpyenv 等多个工具的功能。

uv 简化操作指南

I. 基础命令

任务 命令 说明
自升级 uv uv self update 如果是通过独立安装程序安装的,使用此命令更新 uv。
检查版本 uv --version 验证安装是否成功。

II. 项目初始化与依赖管理

uv 的核心工作流程围绕 pyproject.toml 文件(用于声明抽象依赖)和 uv.lock 文件(用于锁定精确版本,确保环境可重现)展开。

命令 用途 示例
初始化项目 创建新的 uv 项目结构 (pyproject.toml, .gitignore, .venv 虚拟环境,以及 .python-version 文件)。 uv init my_app
添加依赖 安装包并自动更新 pyproject.tomluv.lock uv add requests
添加开发依赖 将依赖添加到 [dependency-groups].dev 部分。 uv add --dev pytest
requirements.txt 添加 导入现有的依赖文件到 pyproject.toml uv add -r requirements.txt
锁定依赖 根据 pyproject.toml 解析并生成/更新 uv.lock 文件 uv lock
同步环境 根据 uv.lock 文件的精确版本 安装/卸载包,确保环境完全可重现。 uv sync
移除依赖 卸载包,并自动移除所有不再需要的传递性依赖 uv remove pandas
升级指定包 升级指定的包到最新兼容版本,并更新锁定文件。 uv lock --upgrade-package flask

III. 环境和 Python 版本管理

uv 集成了虚拟环境 (virtualenv) 和 Python 版本管理 (pyenv) 的功能。

命令 用途 示例
创建虚拟环境 在当前目录创建 .venv 虚拟环境。 uv venv
指定版本创建环境 创建环境并指定 Python 解释器版本 (如果本地没有,uv 会下载安装)。 uv venv --python 3.11
安装 Python 版本 安装特定 Python 解释器。 uv python install 3.12
固定项目版本 创建 .python-version 文件,将项目使用的 Python 版本固定下来。 uv python pin 3.11

IV. 运行脚本和工具

uv 提供隔离的环境来运行脚本和命令行工具,类似于 pipx 的功能。

命令 用途 示例
运行项目命令/脚本 在当前项目的虚拟环境 (.venv) 中运行任意命令或脚本。 uv run pytest tests/
运行独立脚本 运行带有内联依赖元数据(PEP 723)的 Python 脚本。 uv run script.py
临时运行 CLI 工具 uv tool run 的别名,在一次性、短暂的缓存环境中安装并运行工具。 uvx black main.py
全局安装工具 将工具安装到隔离的专用环境中。 uv tool install ruff

V. Pip 兼容模式 (uv pip)

uv 提供了 uv pip 接口,作为传统 pippip-tools 命令的高速替代品,但不推荐用于项目管理 (因为它不会自动更新 pyproject.tomluv.lock)。

任务 uv 兼容命令 传统命令
安装依赖文件 uv pip install -r requirements.txt pip install -r requirements.txt
编译锁定文件 uv pip compile requirements.in pip-compile requirements.in
同步锁定文件 uv pip sync requirements.txt pip-sync requirements.txt
列出已安装包 uv pip list / uv pip freeze pip list / pip freeze
相关推荐
AI攻城狮1 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽1 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健16 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞18 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽20 小时前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
敏编程1 天前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪1 天前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook1 天前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
花酒锄作田2 天前
使用 pkgutil 实现动态插件系统
python