uv - 一个现代化的项目+环境管理工具

参考: 【uv】Python迄今最好的项目管理+环境管理工具(吧?)_哔哩哔哩_bilibili

项目需求

想象,每次创建一个项目的时候,我们需要去写 README. md, .git 仓库, .gitignore,你会感觉很头大

对于 conda 而言,安装速度慢,让人头疼,而 uv 基于 rust 实现,速度快的飞起:
image 1

对于虚拟环境而言,我们想要导出我们的环境配置,则需要每次都用到 pip freeze > requirement.txt,这无疑很麻烦,而使用 uv 则只需要对方给你同步 pyproject. toml 即可

使用方法

Installation: pip install uv

初始化项目uv init my_project
初始化后我们可以发现默认创建了几个文件:
PixPin 2025 05 22 22 55 46

  1. .python-version 是指定的 python 版本
  2. pyproject.toml 包含了项目元数据,以及要用到的环境依赖

管理环境

管理 python 版本

下载 python 版本: uv python install python_version
E.g. uv python install 3.8 3.11

切换 python 版本: uv python pin python_version
E.g. 切换到 3.11 版本 uv python pin 3.11
PixPin 2025 05 22 23 27 30 1

添加依赖
uv add package_name
运行项目
uv run main.py
同步环境
uv sync

E.g. 一个简单的添加 requests 依赖并运行的 demo
PixPin 2025 05 22 23 01 46
PixPin 2025 05 22 23 02 48


有时候,我们想要临时运行一个程序,又不想放到环境中,则在命令后加个 x,即是 uvx
E.g. uvx pytest

有时候,我们只拿到了源码,但是没有给出 requirments 文件,同时我们又不想这时候我们可以使用 uv init --script filename.py 这个参数 :
uv 会在文件首生成一些 metadata,我们在其中指定好我们的依赖:
PixPin 2025 05 23 11 04 56
然后再执行 uv run main.py 就可以正常执行了,同时也不会创建虚拟环境


管理命令行工具

有时候,我们用到的一些工具可能是全局使用的,比如 pytest,这时候我们不想为单独的虚拟环境添加这个包,所以我们应该在全局上安装:
uv tool install package_name
比如安装 pytest: uv tool install pytest
卸载: uv tool uninstall package_name

安装好后 不用加 uv 前缀,直接使用包即可:
PixPin 2025 05 22 23 07 13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值