从零开始掌握 uv:新一代超快 Python 项目与包管理器(含 Windows 支持) - 实践

news/2025/10/14 17:50:54/文章来源:https://www.cnblogs.com/yxysuanfa/p/19141678

从零开始掌握 uv:新一代超快 Python 项目与包管理器(含 Windows 支持)

在 Python 开发的世界里,包管理长期以来是一个“碎片化”的领域:pip 用于安装、virtualenv 用于环境隔离、pip-tools 用于依赖锁定、poetryrye 用于项目管理、pipx 用于工具安装……每个工具都有自己的配置方式和使用习惯,初学者常常感到困惑,而资深开发者也疲于在不同工具间切换。

2024 年,Astral 团队(Ruff 的作者)带来了一个革命性的解决方案:uv —— 一个用 Rust 编写的、极速的 Python 包与项目管理器。它不仅快如闪电(比 pip 快 10–100 倍),还试图统一整个 Python 工具链。本文将带你由浅入深,从安装到实战,全面掌握 uv 的核心能力,并特别包含 Windows 环境下的完整操作指南
在这里插入图片描述


一、什么是 uv?为什么值得关注?

uv 是一个开源的 Python 工具链替代品,目标是“一个工具,搞定一切”。它集成了以下工具的功能:

更令人惊叹的是性能:在缓存命中的情况下,安装像 trio 这样的复杂依赖,uv 比 pip 快数十倍。这一切得益于其用 Rust 编写的核心,以及精心设计的全局缓存机制,实现依赖去重,节省磁盘空间。

uv 支持 macOS、Linux 和 Windows,并且无需预先安装 Rust 或 Python


二、Windows 下安装 uv

方法一:使用 PowerShell 安装(推荐)

  1. 以管理员身份打开 PowerShell(非必需,但可避免权限问题)。
  2. 执行官方安装脚本:
irm https://astral.sh/uv/install.ps1 | iex

运行结果:

Downloading uv 0.8.22 (x86_64-pc-windows-msvc)                                                                          Installing to C:\Users\DELL\.local\binuv.exeuvx.exeuvw.exe
everything's installed!
To add C:\Users\DELL\.local\bin to your PATH, either restart your shell or run:set Path=C:\Users\DELL\.local\bin;%Path%   (cmd)$env:Path = "C:\Users\DELL\.local\bin;$env:Path"   (powershell)

irmInvoke-RestMethod 的缩写,iexInvoke-Expression 的缩写。

  1. 安装完成后,重启终端(或执行 refreshenv,如果你安装了 scoopchocolatey),使 PATH 生效。

  2. 验证安装:

uv --version

你应该看到类似输出:uv 0.5.0 (a1b2c3d4 2025-09-29)
运行结果:

C:\Users\DELL>uv --version
uv 0.8.22 (ade2bdbd2 2025-09-23)

方法二:通过 pip 安装(如果你已有 Python)

pip install uv

⚠️ 注意:这种方式安装的 uv 依赖于当前 Python 环境,性能略逊于原生二进制版本,但功能完全一致。

方法三:手动下载(适用于离线环境)

  1. 访问 uv GitHub Releases
  2. 下载适用于 Windows 的压缩包(如 uv-windows-x86_64.zip
  3. 解压后将 uv.exe 所在目录加入系统 PATH 环境变量

三、Windows 下快速上手:创建并运行项目

1. 初始化项目

D:\python_projects>uv init uv_demo
Initialized project `uv-demo` at `D:\python_projects\uv_demo`

这会生成:

  • pyproject.toml(项目元数据)
  • .gitignore
  • README.md
  • src/myproject/__init__.py
D:\python_projects>cd uv_demo
D:\python_projects\uv_demo>dir驱动器 D 中的卷是 新加卷卷的序列号是 66C3-87A8D:\python_projects\uv_demo 的目录
2025/09/29  21:46              .
2025/09/29  21:46              ..
2025/09/29  21:46                 5 .python-version
2025/09/29  21:46                85 main.py
2025/09/29  21:46               153 pyproject.toml
2025/09/29  21:46                 0 README.md4 个文件            243 字节2 个目录 299,954,900,992 可用字节

2. 添加依赖

D:\python_projects\uv_demo>uv add requests
Using CPython 3.11.5 interpreter at: D:\python311\python.exe
Creating virtual environment at: .venv
Resolved 6 packages in 8.94s
Prepared 5 packages in 4.87s
░░░░░░░░░░░░░░░░░░░░ [0/5] Installing wheels...                                                                         warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
If the cache and target directories are on different filesystems, hardlinking may not be supported.
If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Installed 5 packages in 17ms
+ certifi==2025.8.3
+ charset-normalizer==3.4.3
+ idna==3.10
+ requests==2.32.5
+ urllib3==2.5.0

uv 会自动:

  • 在当前目录创建 .venv 虚拟环境(无需手动激活)
  • 解析并安装 requests 及其依赖
  • 更新 pyproject.tomluv.lock

输出示例(Windows 下同样极速):

Resolved 5 packages in 210ms
Prepared 5 packages in 480ms
Installed 5 packages in 2ms+ requests==2.32.3+ myproject==0.1.0

3. 运行代码

创建 /uv_demo/main.py

def main():
print("Hello from uv-demo!")
import requests
print("Status:", requests.get("https://httpbin.org/status/200").status_code)
if __name__ == "__main__":
main()

然后运行:

D:\python_projects\uv_demo>uv run python -m main

✅ 注意:Windows 下无需担心路径分隔符或激活脚本,uv run 自动处理一切。

Hello from uv-demo!
Status: 200

四、Windows 特别提示

虚拟环境位置

uv 默认在项目根目录下创建 .venv 文件夹(与 poetry 行为一致),你可以在 Windows 资源管理器中直接看到它。

脚本模式(Script Mode)在 Windows 同样可用

echo 'import requests; print(requests.get("https://astral.sh"))' > example.py
uv add --script example.py requests
uv run example.py

uv 会为该脚本自动创建隔离环境,无需管理员权限,也不会污染全局 Python

工具运行(uvx)

再运行一个pycowsay工具:

D:\python_projects\uv_demo>uvx pycowsay "Hello from Windows!"-------------------
< Hello from Windows! >-------------------\   ^__^\  (oo)\_______(__)\       )\/\||----w |||     ||

首次运行会自动下载并缓存,后续调用几乎瞬时完成。

与 Windows Terminal / VS Code 集成

  • VS Code 中打开项目后,选择解释器时可指向 .venv\Scripts\python.exe
  • uv run 命令可直接在 VS Code 终端中使用,无需额外配置

五、核心功能(跨平台通用)

以下功能在 Windows、macOS、Linux 上行为一致:

1. 项目依赖管理

  • uv lock:生成 uv.lock
  • uv sync:根据 lockfile 同步环境
  • 支持 Cargo-style workspaces(多包项目)

2. 兼容 pip

uv pip install numpy pandas

可直接替换现有工作流,获得性能提升。

3. 构建与发布

uv build      # 生成 .tar.gz 和 .whl
uv publish    # 上传到 PyPI

六、为什么选择 uv?(尤其对 Windows 用户)

  • 无需 WSL:原生支持 Windows,性能不打折
  • 告别 venv\Scripts\activate.batuv run 自动处理环境
  • 安装简单:一行 PowerShell 命令搞定
  • 极速体验:即使在 NTFS 文件系统上,依然比 pip 快一个数量级
  • 节省空间:全局缓存避免重复下载(缓存位于 %LOCALAPPDATA%\uv

七、结语

uv 正在重新定义 Python 的开发体验,无论你使用的是 Windows、macOS 还是 Linux。对于长期被 Python 工具链“割裂”困扰的 Windows 开发者来说,uv 提供了一个统一、快速、可靠的解决方案。

现在就打开 PowerShell,试试这个改变游戏规则的工具吧:

irm https://astral.sh/uv/install.ps1 | iex
uv init hello-uv
cd hello-uv
uv add rich
echo "import rich; rich.print('✨ Hello from uv on Windows!')" > demo.py
uv run python demo.py

未来已来,而它快得惊人。


参考资料

  • uv 官方文档
  • uv Installation Guide
  • uv on Windows FAQ(社区整理)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/936979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

敏捷研发管理工具深度测评:ONES、Jira、YouTrack 等 10 款全维度分析

随着软件开发周期的缩短和业务需求的日益变化,敏捷开发已经成为各大开发团队的首选。根据《敏捷开发实践指南》的研究,适当的工具可以有效提升敏捷开发的效率,使团队能够在短期内完成更多的任务,同时保持高质量的交…

HyperWorks许可证与其他软件的卓越集成

随着工程设计和仿真分析领域的快速发展,单一软件已难以满足复杂项目的需求。这时,软件之间的集成与协作显得尤为重要。作为业界领先的工程仿真软件,HyperWorks以其强大的许可证管理功能和与其他软件的卓越集成能力,…

深入理解C++中的字符编码问题:从原理到实践 - 实践

深入理解C++中的字符编码问题:从原理到实践 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

2025 年老年记忆训练器厂家最新推荐榜:权威解析头部品牌创新优势与选购指南

我国人口老龄化持续加深,阿尔茨海默病等认知障碍疾病患者数量逐年攀升,记忆力衰退已成为影响老年人生活质量的核心问题。医学研究证实,早期非药物认知干预能有效延缓记忆衰退进程,但当前市场产品质量参差不齐 ——…

护理白板系统统一外网映射配置

护理白板系统统一外网映射配置备注:用的同事李寅花的手机号的账号 2026-10-14过期

LeetCode热题--207. 课程表--中等 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

融云:用 AI 提升应用活跃度,6 个实用玩法亲测有效

融云:用 AI 提升应用活跃度,6 个实用玩法亲测有效留存、促活是应用永恒的话题,无论是古典互联网还是现在的 AI 新时代。 不同的是,AI 技术爆发后,经典玩法能升级,全新交互正诞生。下面是我们结合实际案例梳理出的…

openldap之slappasswd

slappasswd 是 OpenLDAP 中用于生成加密密码的工具。它对于安全地存储LDAP密码非常重要。下面详细介绍它的使用方法: 基本用法 1. 交互式模式(最常用)bashslappasswd执行后:系统会提示:New password: (输入密码,…

杰理GPIO状态设置

高阻态/*----------------------------------------------------------------------------*/ /**@brief 把所有IO设置为高阻@param x:显示横坐标@return void@author Change.tsai@note void led7_clear(void…

【STM32 系列】理清 xxRAM、xxROM、xxFlash 的核心作用,附 H7 系列超便捷内存区域管理方法

前言 这篇文章我们会对各种内存进行一次较为详细的梳理,主要是分清它们的区别,使得我们可以更好地了解并利用好内存。 RAM、ROM、Flash 这三个总的概括,就使用一个表格来说明吧,表格如下:内存 存储类型 核心功能 …

深入理解 AbstractQueuedSynchronizer(AQS):构建高性能同步器的基石 - 指南

深入理解 AbstractQueuedSynchronizer(AQS):构建高性能同步器的基石 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fa…

2025 年清洗机厂家最新推荐:高压清洗机、超声波清洗机等多类型设备企业品牌权威榜单,帮企业高效筛选优质清洗设备

随着工业生产对设备洁净度与生产效率要求不断提升,清洗机市场需求日益旺盛,但市场品牌繁杂、产品质量参差不齐的问题也愈发凸显。许多企业在选购时,常因缺乏专业信息支撑,难以辨别设备技术是否适配自身行业、质量是…

AVAssetExportSession 为什么比 videotoolbox 处理视频快

https://www.doubao.com/thread/wdad52d2858751bac判断力是一个人最重要的能力

springboot线上问题websocket、rabbitmq失效

问题出现,之前没问题,发过版后突然不行了让后一直不消费,生产者正常,websocket也连接不上最后确认是开起了懒加载,导致初始化失效了,出现连锁反应

从零开始:用C#开发的海量文件内容秒搜神器TDSContent——免费开源高效办公必备!

从零开始:用C#开发的海量文件内容秒搜神器TDSContent——免费开源高效办公必备!从零开始:用C#开发的海量文件内容秒搜神器TDSContent——免费开源高效办公必备! 还在为全文搜索烦恼吗?是否被收费软件的糟糕体验困扰?…

centos 7.9 安装单机版k8s

我这里提前安装好了 docker ,直接着手安装k8s[root@zjk ~]# docker -v Docker version 26.1.4, build 5650f9b1、关闭防火墙、selinux(减少不必要的麻烦)、交换区(防止k8s对pod内存监控幻觉)systemctl stop firew…

隐藏继承成员什么时候用到

“只有在‘故意不让父类成员参与多态’,但又不想改父类签名时,才用 new 隐藏继承成员。”一、先分清 表格 复制关键字目的运行时效果override 扩展/替换父类实现 动态绑定——真实类型决定方法new 彻底隐藏父类成员 …

2025 旋转蒸发仪选型指南:适配科研与生产需求的优质厂家 TOP5 推荐

2025 旋转蒸发仪选型指南:适配科研与生产需求的优质厂家 TOP5 推荐在精细化工提纯、生物医药溶剂回收、高校科研样品预处理等场景中,旋转蒸发仪的控温精度、真空适配性及运行稳定性,直接决定实验效率与产物纯度。面…

今天被公司告知不续签合同了,我被优化了 哈哈哈

沒什么别的事儿,今天被公司告知不续签合同了,我被优化了 哈哈哈, 记录一下

移动终端安全:实验2-创建自签名证书对APP签名 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …