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
相关推荐
小小晓.15 分钟前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法
人机(未转人工)23 分钟前
python 批量测试ip是否能ping( 多线程 )
python
cndes27 分钟前
安装Miniconda+Jupyter notebook
ide·python·jupyter
Patrick在香港36 分钟前
Python 拉取城巴开放数据:406 条路线,香港岛巴士网络的数字画像
网络·python·数据分析·php·数据可视化·香港·开放数据
for_ever_love__1 小时前
python基础语法学习: 正则表达式
python·学习·正则表达式
aiqianji1 小时前
功能全面的教AI短篇小说写作的软件都有哪些?
人工智能·python
格林威1 小时前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
轮到我狗叫了1 小时前
Slurm如何使用
人工智能·python·深度学习·机器学习
chen<>1 小时前
C++ 六种 memory_order:从原子性到线程间可见性.md
java·linux·开发语言·c++
一直C1 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code