超模工具记录——uv和ruff
UV
uv的设计主要是用于包管理,使用venv等虚拟环境,或者轻量化的代码不使用虚拟环境的时候便捷运行代码。uv的设计并没有集成conda的接口,但是集成了pip的接口,这给我们使用conda环境提供了可能。以下展示uv和conda的配合使用。UV是Astral团队开发的python包管理工具,功能十分强大。
在github上拥有着31.2k的star(截止2024.12)
uv和conda配合使用
uv凭什么比原生pip快?
不同于pip批量下载时的同步请求,使用uv批量下载包的时候请求是异步的。这使得多个文件下载得以并行。和pip相同,uv也有cache,功能相同。
另外,使用体验起来发现,使用uv下载时install步骤非常快,我猜测这得益于其异步请求、下载和安装的机制,因此安装的过程只取决于流程最长的包。
和pip相同,uv也有cache,功能相同。
对比实验
这里做了关于uv、pip两种下载方式下载cuda版本torch时的对比实验。
可以看到uv比pip整整快了一分多钟。(且在反复测试过程中,最后一次使用pip下载的时候网速突然增大,实际结果应当是快两分钟左右。)在只有寥寥几个下载文件的时候就快出一分多钟来,可见下载量大的时候其增益效果明显。
pip接口
其中uv pip sync和pip install -r requirements.txt不同,它是删掉环境中在req中没有的包,安装req中的包,这点要注意。
值得注意的是uv pip tree
命令,可以展示所有包之间的依赖关系,非常的好用。想要查看单个包的信息(版本、位置、依赖关系)可以使用 uv pip show {package}
ruff
ruff同样是Astral团队开发的,一个python语法检查器,响应速度很快,还支持自动改错。
在github上拥有着33.7k的star(截止2024.12)
它并不像uv一样有很多花样,主要的用处就是python语法检查,同时vscode中有插件。使用方式分为command和plugin,下面分别按两种使用方式进行阐述:
Command
1 | pip install ruff |
用法主要为 ruff check
和 ruff format
,其中check的时候带上–fix参数会快速把没有异议的语法错误修正了。
plugin
在命令面板可以使用ruff进行操作:
使用起来很方便,并且打开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.