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
相关推荐
你怎么知道我是队长16 小时前
C语言---头文件
c语言·开发语言
期待のcode16 小时前
Java虚拟机的运行模式
java·开发语言·jvm
hqwest16 小时前
码上通QT实战25--报警页面01-报警布局设计
开发语言·qt·qwidget·ui设计·qt布局控件
a程序小傲16 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
HellowAmy17 小时前
我的C++规范 - 玩一个小游戏
开发语言·c++·代码规范
自学不成才17 小时前
深度复盘:一次flutter应用基于内存取证的黑盒加密破解实录并完善算法推理助手
c++·python·算法·数据挖掘
徐先生 @_@|||17 小时前
Palantir Foundry 五层架构模型详解
开发语言·python·深度学习·算法·机器学习·架构
tang7778918 小时前
爬虫如何绕过绕过“5秒盾”Cloudflare:从浏览器指纹模拟到Rust求解之不完全指南
开发语言·爬虫·rust·cloudflare
Yuer202518 小时前
什么是 Rust 语境下的“量化算子”——一个工程对象的最小定义
开发语言·后端·rust·edca os·可控ai
深蓝电商API18 小时前
Scrapy爬虫限速与并发控制最佳实践
爬虫·python·scrapy