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
相关推荐
pilaf199040 分钟前
Rust练习题
开发语言·后端·rust
asdfg125896342 分钟前
replace(/,/g, ‘‘);/\B(?=(\d{3})+(?!\d))/;千分位分隔
开发语言·前端·javascript
透明的玻璃杯43 分钟前
VS2015 调用QT5.9.9 的库文件 需要设置QT库的路径
开发语言·qt
无限进步_43 分钟前
C++初始化列表详解:语法、规则与最佳实践
java·开发语言·数据库·c++·git·github·visual studio
子午1 小时前
【鸟类识别系统】Python+TensorFlow+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
2301_795167201 小时前
Python 高手编程系列一十八:子类化内置类型
linux·windows·python
Hello.Reader1 小时前
FF4J 用特性开关玩转 Java 应用灰度与发布
java·开发语言
想看一次满天星1 小时前
阿里140-n值纯算
爬虫·python·算法·网络爬虫·阿里140
Keep__Fighting1 小时前
【机器学习:逻辑回归】
人工智能·python·算法·机器学习·逻辑回归·scikit-learn·matplotlib