在 Python
的世界里,包管理工具一直是开发者生态中至关重要的一环。从 pip
、venv
到 conda
、Poetry
,再到 PDM
,可谓百家争鸣。然而,一个名为 uv
的新星正以其惊人的速度和创新的设计理念,迅速吸引了整个 Python
社区的目光。本文将作为一份全面的使用说明,带你深入了解 uv
,从安装到日常使用,并阐述为何它可能成为你下一个 Python
项目的首选。
什么是 uv?为何选择它?
uv
是一个用 Rust
编写的、速度极快的 Python
包和项目管理器。它由 Ruff
(一个广受欢迎的 Python Linter
)的创建者 Astral
公司开发。uv
的设计目标是成为 pip
、pip-tools
、venv
和 virtualenv
的直接替代品,并提供一个统一、快速且易于使用的工具链。
选择 uv 的理由和突出亮点:
- ⚡️ 极致的速度: 这是
uv
最引人注目的特点。得益于Rust
的高性能和先进的依赖解析算法,uv
的包安装和解析速度比pip
和conda
快10-100
倍。对于大型项目或在CI/CD
环境中,这将极大地缩短等待时间。 - 📦 一体化工具链:
uv
将包安装、依赖解析、虚拟环境管理等功能集于一身。你不再需要在pip
、venv
、pip-tools
之间切换,一个uv
命令即可满足大部分日常需求,显著简化工作流程。 - **
seamlessly Drop-in Replacement
😗*uv
在设计上与pip
的命令和requirements.txt
文件格式高度兼容。这意味着你可以将现有的项目平滑地迁移到uv
,而无需进行大量修改。uv pip install -r requirements.txt
这样的命令可以无缝工作。 - 🔩 高效的缓存机制:
uv
采用全局缓存策略,避免了重复下载和构建相同的包,从而节省了磁盘空间和网络带宽,并进一步提升了安装速度。 - 跨平台支持:
uv
是一个独立的二进制文件,不依赖于系统安装的Python
版本,可以在macOS
,Linux
, 和Windows
上轻松安装和使用。 - 现代化的项目管理:
uv
支持pyproject.toml
标准,可以像Poetry
或PDM
一样管理项目元数据和依赖关系,但速度更快。
安装 uv
安装 uv
非常简单,因为它是一个独立的二进制文件。
在 macOS 和 Linux 上:
你可以使用 curl
或 wget
来下载并执行安装脚本:
Bash
curl -LsSf https://astral.sh/uv/install.sh | sh
在 Windows 上:
打开 PowerShell
(建议以管理员身份) 并运行以下命令:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
你也可以通过包管理器如 Homebrew
, pipx
或 cargo
来安装:
# Homebrew (macOS/Linux)
brew install uv
# pipx
pipx install uv
# cargo
cargo install uv
安装完成后,通过以下命令验证安装是否成功:
uv --version
使用 uv 管理 Python 项目
让我们通过一个实例项目来看看如何使用 uv
进行高效的 Python 项目管理。
1. 初始化项目和创建虚拟环境
首先,创建一个新的项目目录:
mkdir my-fast-project
cd my-fast-project
使用 uv venv
命令可以快速创建一个虚拟环境。uv
会自动在当前目录下寻找名为 .venv
的虚拟环境,这也是推荐的做法。
# 创建一个虚拟环境
uv venv
此命令的执行速度会明显快于 python -m venv .venv
。创建成功后,激活虚拟环境:
在 macOS 和 Linux 上:
source .venv/bin/activate
在 Windows 上:
.venv\Scripts\activate
2. 安装依赖
uv
提供了 uv pip
子命令,其接口与 pip
非常相似。
-
从 PyPI 安装单个或多个包:
# 安装最新版本的 aiohttp uv pip install aiohttp # 安装特定版本的 aiohttp uv pip install aiohttp==3.9.1 # 同时安装多个包 uv pip install fastapi uvicorn
-
从
requirements.txt
文件安装:如果你的项目依赖记录在
requirements.txt
文件中,可以轻松安装:uv pip install -r requirements.txt
-
将依赖同步到
requirements.txt
:你可以使用
uv pip freeze
来生成已安装包的列表:uv pip freeze > requirements.txt
3. 卸载依赖
卸载包同样简单直接:
Bash
uv pip uninstall aiohttp
4. 使用 pyproject.toml
进行现代化管理
对于新项目,更推荐使用 pyproject.toml
来管理依赖。uv
提供了类似 Poetry
的工作流。
-
初始化项目:
uv init
这将创建一个基础的
pyproject.toml
文件。 -
添加依赖:
使用
uv add
命令可以添加依赖,并自动将其写入pyproject.toml
。# 添加一个生产依赖 uv add requests # 添加一个开发依赖 (例如 ruff) uv add --dev ruff
-
同步依赖:
当
pyproject.toml
文件发生变化时(例如手动编辑或git pull
更新后),使用uv sync
命令来安装或移除包,使其与文件中声明的依赖保持一致。uv sync
设置镜像源
在中国大陆等地区,为了加速包的下载,通常需要将 PyPI 源更换为国内的镜像源。uv
支持通过环境变量或配置文件来设置。
通过环境变量设置 (临时):
这是最简单快捷的方式,只在当前的终端会话中有效。
# 设置清华大学 TUNA 镜像源
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
设置后,当前终端中所有的 uv pip install
命令都会使用该镜像源。
通过配置文件设置 (永久):
为了让配置永久生效,你可以创建 uv
的配置文件。在你的用户主目录下的 .config/uv
目录 (如果不存在则创建) 中,新建一个 uv.toml
文件。
在 macOS
和 Linux
上: ~/.config/uv/uv.toml
在 Windows
上: %APPDATA%\uv\uv.toml
在 uv.toml
文件中添加以下内容:
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
保存后,uv
将会默认使用此镜像源进行包的下载和安装。
环境管理
uv
不仅仅是一个包管理器,也是一个高效的虚拟环境管理器。
-
创建环境:
# 在当前目录创建 .venv uv venv # 指定 Python 版本 (uv 会尝试寻找已安装的匹配版本) uv venv --python 3.11 # 指定环境名称 uv venv my-env
-
删除环境:
直接删除对应的虚拟环境目录即可。
rm -rf .venv
uv
与其他工具的比较
特性 | uv | pip + venv | Conda | Poetry / PDM |
---|---|---|---|---|
核心优势 | 速度极快, 一体化 | Python 内置, 广泛使用 | 强大的环境和非 Python 包管理 | 优秀的依赖解析和项目管理 |
性能 | 极高 (Rust 编写) | 一般 | 较慢 (Python 编写) | 较好 (Python 编写) |
环境管理 | 内置且快速 | venv / virtualenv | 内置,功能强大 | 内置 |
依赖解析 | 先进,快速 | 基础 | 强大,但有时较慢 | 强大,符合现代标准 |
配置文件 | pyproject.toml , requirements.txt | requirements.txt | environment.yml | pyproject.toml |
易用性 | 统一命令,学习曲线低 | 功能分散,需要组合使用 | 命令复杂,功能强大 | 学习曲线相对陡峭 |
总结
uv
的出现,无疑是 Python
工具链领域的一次重大革新。它以一种“少即是多”的哲学,通过一个统一、高效的工具,解决了开发者长期以来在包管理和环境管理方面遇到的速度慢、工具分散等痛点。
对于新项目,uv
是一个极具吸引力的选择。 它能提供闪电般的开发设置体验和现代化的项目管理方式。对于现有项目,其对 pip
和 requirements.txt
的良好兼容性也使得迁移成本极低。
当然,uv
作为一个相对较新的项目,其生态和一些高级功能(如复杂的插件系统)可能还在不断完善中。但凭借其惊人的性能、出色的设计和强大的后盾 (Astral
),uv
已经证明了自己不仅仅是一个“更快的 pip
”,而是一个能够显著提升 Python
开发体验和效率的下一代工具。如果你还在为缓慢的依赖安装和繁琐的环境管理而烦恼,那么现在就是拥抱 uv
的最佳时机。
大模型岗位需求
大模型时代,企业对人才的需求变了,AIGC相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
掌握大模型技术你还能拥有更多可能性:
• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;
• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;
• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;
• 更优质的项目可以为未来创新创业提供基石。
可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把全套AI技术和大模型入门资料、操作变现玩法都打包整理好,希望能够真正帮助到大家。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
零基础入门AI大模型
今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
有需要的小伙伴,可以点击下方链接免费领取【保证100%免费
】
1.学习路线图
如果大家想领取完整的学习路线及大模型学习资料包,可以扫下方二维码获取
👉2.大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。(篇幅有限,仅展示部分)
大模型教程
👉3.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(篇幅有限,仅展示部分,公众号内领取)
电子书
👉4.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(篇幅有限,仅展示部分,公众号内领取)
大模型面试
**因篇幅有限,仅展示部分资料,**有需要的小伙伴,可以点击下方链接免费领取【保证100%免费
】
**或扫描下方二维码领取 **