作为 Python 开发者,你是否还在忍受pip缓慢的依赖解析速度?是否厌倦了在 virtualenv、pip-tools 和poetry 之间来回切换?今天我要向大家介绍一款革命性的工具— uv,它将彻底改变你的 Python 开发体验!
uv 是由打造了 Ruff(Python超速Linter)的 Astral 团队开发的全新 Python 包管理工具,基于 Rust 编写,旨在成为 "Python界的Cargo"。它不仅仅是一个 pip 的替代品,更是一个集包管理、虚拟环境管理、Python 版本控制和依赖锁定于一体的一体化解决方案。
正如它在 Github 主页介绍的一样:
一款工具替代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等
⚡️ 比 pip 快 10-100 倍
️ 提供全面的项目管理,支持通用锁文件
❇️ 运行脚本,并支持内联依赖元数据
安装并管理 Python 版本
️ 运行和安装以 Python 包形式发布的工具
提供兼容 pip 的接口,在熟悉 CLI 的同时获得性能提升
支持 Cargo 风格的工作区,适用于可扩展项目
高效利用磁盘空间,全局缓存实现依赖去重
⏬ 无需 Rust 或 Python,通过 curl 或 pip 即可安装
️ 支持 macOS、Linux 和 Windows
uv 上手是非常简单的,我们可以使用 pip 安裝 uv
pip install uv
一行命令就能创建一个项目
# 初始化一个项目
$ uv init uv-example
$ cd uv-example
# 创建虚拟环境
$ uv add ruff
# Resolved 2 packages in 4.26s
# Prepared 1 package in 7.37s
# [0/1] Installing wheels...
# + ruff==0.11.9
# 运行程序
$ uv run main.py
# Hello from uv-example!
基于以上简单项目,我们安装 pandas 工具,进行数据分析
# 安装 pandas 插件
$ uv add pandas
# 在 main.py 中编写数据分析程序
import pandas as pd
data = {"Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 35]}
df = pd.DataFrame(data)
filtered = df[df["Age"] > 30]
print(filtered)
# Name Age
# 2 Charlie 35
✅ 优势
❌ 局限
基于以上优缺点分析,我们在使用 uv 尝鲜时,应注意其适用场景:
cond
;稳定性考量:
uv
的工作流与传统 pip
/conda
略有差异;作为 2024 年才发布的新工具,uv 的发展势头惊人:
Astral 团队计划在未来版本中:
uv 代表了 Python 包管理的未来方向 — 极速、统一、可靠。无论你是 Python 新手还是资深开发者,都值得尝试这款革命性工具,它将显著提升你的开发效率和体验。
所以,你不妨一试:
你尝试过 uv 了吗?欢迎在评论区分享你的使用体验!帮助大家指明前进的方向~~~
如果你喜欢本文,欢迎点赞,并且关注我们的微信公众号:Python技术极客,我们会持续更新分享 Python 开发编程、数据分析、数据挖掘、AI 人工智能、网络爬虫等技术文章!让大家在Python 技术领域持续精进提升,成为更好的自己!
添加作者微信(coder_0101),拉你进入行业技术交流群,进行技术交流!!