超模工具记录——uv和ruff

超模工具记录——uv和ruff

Chandery Computer Vision

UV

UV是Astral团队开发的python包管理工具,功能十分强大。
在github上拥有着31.2k的star(截止2024.12)

image.png uv的设计主要是用于包管理,使用venv等虚拟环境,或者轻量化的代码不使用虚拟环境的时候便捷运行代码。uv的设计并没有集成conda的接口,但是集成了pip的接口,这给我们使用conda环境提供了可能。以下展示uv和conda的配合使用。

uv和conda配合使用

uv凭什么比原生pip快?
不同于pip批量下载时的同步请求,使用uv批量下载包的时候请求是异步的。这使得多个文件下载得以并行。和pip相同,uv也有cache,功能相同。
image.png
另外,使用体验起来发现,使用uv下载时install步骤非常快,我猜测这得益于其异步请求、下载和安装的机制,因此安装的过程只取决于流程最长的包。
image.png
和pip相同,uv也有cache,功能相同。
image.png

对比实验

这里做了关于uv、pip两种下载方式下载cuda版本torch时的对比实验。
image.png
image.png
可以看到uv比pip整整快了一分多钟。(且在反复测试过程中,最后一次使用pip下载的时候网速突然增大,实际结果应当是快两分钟左右。)在只有寥寥几个下载文件的时候就快出一分多钟来,可见下载量大的时候其增益效果明显。

pip接口

image.png
其中uv pip sync和pip install -r requirements.txt不同,它是删掉环境中在req中没有的包,安装req中的包,这点要注意。
值得注意的是uv pip tree命令,可以展示所有包之间的依赖关系,非常的好用。想要查看单个包的信息(版本、位置、依赖关系)可以使用 uv pip show {package}
image.png
image.png

ruff

ruff同样是Astral团队开发的,一个python语法检查器,响应速度很快,还支持自动改错。
在github上拥有着33.7k的star(截止2024.12)

image-20241212170902512

它并不像uv一样有很多花样,主要的用处就是python语法检查,同时vscode中有插件。使用方式分为command和plugin,下面分别按两种使用方式进行阐述:

Command

1
pip install ruff

image-20241212171206300

用法主要为 ruff checkruff format,其中check的时候带上–fix参数会快速把没有异议的语法错误修正了。

plugin

image-20241212171528201

在命令面板可以使用ruff进行操作:

image-20241212171653951

使用起来很方便,并且打开python文件会自动进行语法检查,速度比pylance快很多很多,工作效率++。

  • Title: 超模工具记录——uv和ruff
  • Author: Chandery
  • Created at : 2024-12-11 07:54:55
  • Updated at : 2024-12-12 09:18:41
  • Link: https://chandery.chat/2024/12/11/超模工具记录——uv和ruff/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
超模工具记录——uv和ruff