当前位置: 首页 > news >正文

『不废话』之Python管理工具uv快速入门

 在『不废话』之大模型推理超参数解释『不废话』之动手学MCP 中提到了uv,很多朋友都说没用过,咨询有什么优势?

通常Python新手都会使用conda、miniconda来管理Python环境,稍微高阶水平的会使用pyenv、poetry、virtualenv等工具来管理,但这些工具都有一个问题:慢!不简约!现在是时候了解一下uv了!由开发ruff的团队Astral打造,uv是一个用Rust编写的极速Python包安装器和解析器,旨在成为pippip-tools的直接替代品,并且还内置了虚拟环境管理功能。本文的目标就是——不废话,带你快速上手uv

为什么是 uv?

核心优势就两个字: 和 整合

  1. 极致速度: uv 使用Rust编写,并基于并行处理和智能缓存策略。根据官方数据和社区反馈,它在安装、解析依赖等场景下,比pip及其组合工具链(如 pip-tools快10-100倍。对于大型项目或CI/CD流程,这意味着节省大量时间。
  2. All-in-One: uv 不仅是包安装器 (pip 替代),还是虚拟环境管理器 (venv/virtualenv替代) 和依赖锁定工具 (pip-compile 替代)。一个工具搞定核心需求,命令更统一、简洁。

如果你受够了等待pip install或者管理多个工具链,uv值得一试。

https://docs.astral.sh/uv/

安装 uv

官方提供了多种安装方式,选择适合你的:

macOS 和 Linux (推荐):

# 通过 curl 安装
curl -LsSf https://astral.sh/uv/install.sh | sh# 或者,如果你使用 pipx (推荐管理Python应用)
pipx install uv

Windows (推荐):

# 通过 PowerShell 安装
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"# 或者,如果你使用 pipx
pipx install uv

其他方式:

也可以通过pipcondabrew等安装,详情参考官方文档。安装后,验证一下:

uv --version

快速上手

uv 的设计目标之一就是与pip的命令保持兼容性,降低学习成本。

项目初始化

uv init

这将创建 4个文件:

  • .python-version:指定项目的 Python  版本。
  • hello.py:一个简单的初学者脚本文件
  • pyporject.toml:配置项目依赖项、构建设置和元数据。
  • README.md:用于记录项目目的和用途的模板。

创建虚拟环境

uv venv或指定 Python 版本uv venv --python 3.12.3激活虚拟环境.venv\Scripts\activate

增加依赖库

uv add requests fastapi pandas numpy

依赖一旦添加,会自动创建一个名为 uv.lock 的文件。 uv.lock 文件用于记录有关项目依赖项及其确切版本的信息。这个文件非常有用,我在过去几年使用 pyenv 同步其他人的依赖库时,经常碰到依赖冲突问题,有时甚至奔溃到要一个一个尝试哪里出问题了。

移除依赖库

uv remove fastapi

同步依赖库

通常不会将虚拟环境提交到 Git 仓库中,可以使用如下命令来同步其他人的依赖库。可以不用考虑依赖冲突的问题,uv.lock文件会管理所有的版本依赖。

uv sync

执行脚本

uv run main.py

工具安装

uv tool install ruff

工具安装的概念就是将工具后就能像命令行工具一样使用了。  

一个简单的对比

uv vs. pip/venv

特性uvpip + venv/virtualenv + pip-tools
核心语言RustPython
速度极快 (10-100x)较慢
工具整合单一工具 (安装、环境、部分锁定)多个工具组合
缓存全局共享缓存,更高效pip有缓存,但机制不同
兼容性高度兼容pip命令,pyproject.toml标准工具链
成熟度新兴,快速发展中非常成熟,生态完善

uv 的主要优势在于速度整合带来的简洁性。虽然它很新,但由ruff背后强大的团队支持,发展迅猛,值得投入时间去尝试。

结语

uv 为Python开发者提供了一个极具吸引力的新选择,特别是对于那些追求效率和简洁工具链的人。它通过Rust实现了惊人的性能提升,并整合了包管理和虚拟环境的核心功能。"不废话"地说,如果你还没试过uv,现在就去安装体验一下吧,感受一下pip install瞬间完成的快感!

随着uv的不断发展,它很可能成为未来Python项目管理的主流工具之一。

下一步?

  • 访问 uv 官方文档: https://astral.sh/uv
  • 在你的下一个项目中尝试使用uv进行包管理。
  • 关注 Astral 的博客或GitHub,了解uv的最新进展。

希望这篇快速入门能帮你迈出使用uv的第一步!如果你有任何使用体验或问题,欢迎在评论区交流。干中学!

http://www.xdnf.cn/news/88561.html

相关文章:

  • 【Java】Hibernate的检索策略
  • python的深拷贝浅拷贝(copy /deepcopy )
  • 三维几何变换
  • usb2.0的硬件知识(一)
  • 查看MySql操作日志
  • 布隆过滤器的应用
  • 《Operating System Concepts》阅读笔记:p764-p766
  • 【Axure视频教程】不透明度函数
  • 以下是一个基于 ESP32 - S3 实现消息队列收发测试的 C 例程
  • crontab 定时备份 mysql 数据库
  • CF思维题(cf round 1019 div.2 b题)
  • ADS基本操作之S参数仿真
  • 如何高效优化复杂的SQL查询:以项目发布管理为例
  • Java知识大纲
  • 内存管理之文件内存映射(mmap):外存(磁盘/flash)的文件映射到应用层(跨越内核层)
  • 解析芯片低功耗设计的底层逻辑与实现方法
  • 最新项目笔记
  • Java的反射机制(曼波超易懂图文版)
  • 一洽智能硬件行业解决方案探索与实践
  • 从零开始学Python游戏编程33-指令模式2
  • AI大模型-window系统CPU版安装anaconda以及paddle详细步骤-亲测有效
  • c++STL——stack、queue、priority_queue的模拟实现
  • JDK安装超详细步骤
  • c#操作excel
  • Codeforces Round 1019 (Div. 2)(A-D)
  • 【线段树】P10381 「HOI R1」杂赛选比|普及+
  • SpringbootWeb开发(注解和依赖配置)
  • Sqlserver安全篇之_Sqlcmd命令使用windows域账号认证sqlserver遇到问题如何处理的案例
  • 基于STM32、HAL库的MCP4018T数字电位器驱动程序设计
  • 第5章-1 优化服务器设置