百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

UV 上手指南:Python 项目环境/包管理新选择

off999 2025-07-21 17:08 4 浏览 0 评论

如果你是一位 Python 开发者,曾因 pip install 的安装速度而感到沮丧,或者希望 Python 的依赖管理能够像 Node.js 那样高效顺滑,那么 UV 可能正是你所需要的工具。

UV 是由 Astral 团队开发的一款超高速 Python 包管理器,旨在替代传统的 pip 和 virtualenv。它聚焦于三个关键点:性能、安全性、以及现代化开发流程的兼容性

本文将通过一份精炼的速查手册,介绍 UV 的基本概念、安装方式,以及 Python 开发中常用的核心命令,帮助你快速上手并优化开发效率。

什么是 UV?

UV 是一款新型的 Python 包管理工具,具备以下特点:

  • 类似 pip 的包管理器,但速度比 pip 快 10 到 100 倍
  • 虚拟环境管理器,可替代 virtualenv 或 venv
  • 由 Rust 编写,性能极致优秀
  • 完全兼容 pyproject.toml 项目结构
  • 一个工具,即可统一替代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等多个工具的功能

安装UV

使用独立安装脚本(推荐方式):通过 curl 下载并执行安装脚本(适用于 macOS / Linux):

curl -LsSf https://astral.sh/uv/install.sh | sh

UV 已被收录至 Homebrew 核心软件库,亦可使用以下命令安装:

brew install uv

Windows 用户:使用 PowerShell 安装(需管理员权限):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

通过 PyPI 安装:使用 pipx 安装(推荐独立环境):

pipx install uv
# 也可以直接使用 pip 安装(需手动管理环境):
pip install uv

安装完成后验证版本:uv --version

升级 UV

使用独立安装脚本安装的用户:如果你是通过 独立安装脚本 安装的 UV,可直接使用以下命令进行自我升级:

uv self update

其他安装方式(如 pip/pipx/Homebrew):请使用对应包管理工具的升级命令。例如:

pip install --upgrade uv

对于使用 pipx 或 brew 安装的用户,也请分别使用 pipx upgrade uv 或 brew upgrade uv。

安装python

首先,查看可用和已安装的 Python 版本:

uv python list

安装指定的python版本,例如:

uv python install cpython-3.14.0a5-windows-x86_64-none

创建虚拟环境,可指定 Python 版本

UV 支持为指定的 Python 解释器版本创建虚拟环境,哪怕该版本尚未在本地安装。UV 会自动下载并配置对应解释器。

例如,以下命令将使用 Python 3.14 Alpha 5自由线程(Free-threaded)版本,创建一个名为 python314free 的虚拟环境:

uv venv --python cpython-3.14.0a5+freethreaded-windows-x86_64-none python314free

激活虚拟环境

手动激活,也可以执行:

source .venv/bin/activate
# windows 下
python314free\Scripts\activate

虚拟环境中的包操作

  • 安装包到当前虚拟环境:uv pip install <包名>
  • 卸载包:uv pip uninstall <包名>
  • 查看当前虚拟环境中的已安装包:uv pip list

项目及依赖管理:UV 的核心能力

UV 不只是一个包安装器,它支持完整的 Python 项目结构和现代依赖管理流程,天然支持 pyproject.toml,可完全替代 pip、virtualenv、requirements.txt、pip-tools、poetry 等工具组合。

① 创建新项目(推荐起步方式)

UV 提供开箱即用的项目初始化能力:

mkdir my-python-app
cd my-python-app
uv init

这条命令会自动生成一套标准化的 Python 项目结构,包括:

  • pyproject.toml:项目元信息与依赖配置
  • .python-version:指定 Python 版本(便于团队一致性)
  • README.md:默认文档模板
  • main.py:入口脚本

此时,项目已就绪,UV 会自动在该目录中创建 .venv 虚拟环境用于包管理。

② 安装依赖(添加包)

使用 uv add 安装新依赖,并自动写入 pyproject.toml 与 uv.lock:

uv add requests

③ 从 requirements.txt迁移

UV 支持一键导入已有依赖文件,适合旧项目迁移:

uv add -r requirements.txt -c constraints.txt

-r 指定依赖列表,-c 指定约束条件(可选)

UV 会将其中的包导入至 pyproject.toml,并安装到 .venv 中。

④锁定与版本控制

UV 自动维护一个 uv.lock 文件,记录确切的依赖版本,确保开发与部署环境一致。无需再维护多个 *.txt 文件。

UV 的目标是统一 Python 的开发体验:一个命令行工具,管理一切依赖、环境与项目结构,兼容标准,极致高效,零额外负担

其他常用命令速览:提升项目管理效率

除了创建项目、安装依赖等基本操作,UV 还提供了一些常用的辅助命令,方便你更精细地管理依赖和发布流程。

  • 同步环境与锁文件(确保一致性): uv pip sync ,根据 uv.lock 文件 同步虚拟环境中的依赖,确保本地安装与锁定版本完全一致。
  • 编译锁文件(从 requirements 推导 lock): uv pip compile ,将当前项目中的依赖解析为锁定版本,生成 uv.lock 文件。
  • 手动生成锁文件 :uv lock,重新解析 pyproject.toml 中的依赖并生成/更新 uv.lock,适用于初始化或依赖变更后手动触发锁定。
  • 发布项目到 PyPI 或私有源:uv publish ,将当前项目打包并发布到 Python 包索引(如 PyPI)。支持读取 pyproject.toml 中的元数据自动打包。


UV 是一个用 Rust 编写的超高速 Python 包与环境管理工具,可一站式替代 pip、virtualenv、pip-tools、poetry 等传统工具链。本文带你快速上手 UV,体验现代化 Python 项目管理的流畅与高效。

相关推荐

Python开发管理神器--UV 使用教程:从安装到项目管理

UV是一个用Rust编写的高效Python包和项目管理工具,提供了比传统工具更快的速度和更强的功能。本文将指导你如何使用UV从安装到运行一个Python项目。重点:它可以独立安装,可...

python入门-Day 26: 优化与调试(python优化方法)

优化与调试,内容包括处理模型运行中的常见问题(内存、依赖)、调整参数(如最大生成长度),以及练习改进Day25的文本生成结果。我会设计一个结构化的任务,帮助你掌握优化和调试技巧,同时提升模型性能...

Python安装(python安装发生严重错误)

Windows系统1.安装python1.1下载Python安装包打开官方网站:https://www.python.org/downloads/点击"DownloadPython3.1...

UV 上手指南:Python 项目环境/包管理新选择

如果你是一位Python开发者,曾因pipinstall的安装速度而感到沮丧,或者希望Python的依赖管理能够像Node.js那样高效顺滑,那么UV可能正是你所需要的工具。UV...

uv——Python开发栈中的高效全能小工具

每天写Python代码的同学,肯定都离不开pip、virtualenv、Poetry等基础工具,但是对这些工具可能是又恨又离不开。那么有什么好的替代呢,虫虫今天就给大家介绍一个替代他们的小工具uv,一...

使用Refurb让你的Python代码更加优秀

还在担心你写的Python代码是否专业,是否符合规范吗?这里介绍一个Python代码优化库Refurb,使用它可以给你的代码提出更加专业的建议,让你的代码更加的可读,规范和专业。下面简单介绍这个库的使...

【ai】dify+python开发AI八字排盘插件

Dify插件是什么?你可以将Dify插件想象成赋予AI应用增强感知和执行能力的模块化组件。它们使得将外部服务、自定义功能以及专用工具以”即插即用”的简洁方式集成到基于Dify构建的AI...

零基础AI开发系列教程:Dify升级指南

Dify近期发布很是频繁,基本两三天一个版本。值得肯定的是优化和改进了很多问题,但是官方的升级文档有点分散,也有点乱。我这里整理了一个升级文档供大家参考,如果还没有升级到新版本的小伙伴,可以按照我的文...

升级到PyTorch 2.0的技巧总结(如何更新pytorch版本)

来源:DeepHubIMBA本文约6400字,建议阅读12分钟在本文将演示PyTorch2.0新功能的使用,以及介绍在使用它时可能遇到的一些问题。PyTorch2.0发布也有一段时间了,大家...

dify 1.6.0版本发布解读:引入MCP支持与多项核心优化升级指南详解

2025年7月10日,dify发布了1.6.0版本。这是一次功能深度升级与性能优化的综合性更新,标志着dify在技术规范支持、操作体验以及系统稳定性方面迈出了重要的一步。本文将从核心新特性、功能增强、...

Python教程(十四):列表(List)(python列表方法总结)

昨天,我们学习了变量作用域,理解了局部和全局变量的概念。今天,我们将开始探索Python的数据结构,从最常用的**列表(List)**开始。列表是Python中最灵活、最常用的数据结构,它可以存储不同...

Python列表操作(python列表有哪些基本操作)

Python添加列表4分钟阅读在Python操作列表有各种方法。例如–简单地将一个列表的元素附加到for循环中另一个列表的尾部,或使用+/*运算符、列表推导、extend()和i...

Python字符串变形术:replace替换+join连接,10分钟掌握核心操作

字符串替换魔法:replace()实战手册核心价值:一键更新文本内容,精准控制替换范围#基础替换:Python变Javas="hellopython"print(s.re...

python集合set() 数据增册改查统计序循常用方法和数学计算

概念特点定义和创建常用操作集合间的关系集合数学操作集合生成式遍历概念:可变、无序、不重复的序列数据容器特点:无序,不支持下标唯一性,可以删除重复数据可修改定义和创建赋值法:语法:s={x,....

Python列表方法append和extend的区别

在Python编程中,列表是一种非常常用的数据结构。而列表有两个方法append()和extend(),它们看起来有点相似,但实际上有着明显的区别。今天咱们就来好好唠唠这俩方法到底有啥不同。基本区别a...

取消回复欢迎 发表评论: