文章

python包管理神器:UV

目前 UV 因其优势,已被大量的python开源项目使用。简单整理了一些命令,不到 UV 功能的 1/5,更多功能慢慢探索。

个人使用感受:

  1. 在一个项目下,不同的文件夹可以有多个环境。方便学习或者测试不同的内容

  2. 25年版本的pycahrm已经支持uv管理环境

  3. 管理不同版本的python更加方便

安装

# mac
brew install uv
​
# win
powershell -c "irm https://astral.sh/uv/install.ps1 | more"

使用

恢复已经使用 uv 管理的项目的环境

# 适用于uv管理文件存在的时候,根据相关文件创建环境的场景,比如:我们clone了一个使用 uv管理的项目
# 如果环境还没有被 uv管理,请参考后续的初始化命令
uv sync

初始化项目

初始化的时候会在项目中创建三个文件:README.md、main.py、pyproject.toml

# 初始化当前项目
uv init
​
# 创建并初始化项目
uv init  <项目名称>

# 初始化的时候指定python版本
uv init -p 3.12

初始化虚拟环境

该命令可以在当前目录中创建一个.venv的虚拟环境,使用source .venv/bin/activate可以进入虚拟环境中。

uv venv --python=3.12
​
# 虚拟环境其他命令
​

包管理

# 添加单个包
uv add requests
​
# 指定版本约束
uv add 'requests==2.31.0'
​
# 从requirements.txt文件安装依赖
uv add -r requirements.txt
​
# 从有pyproject.toml的项目安装依赖
uv pip install -e .
​
# 删除包
uv remove requests

运行代码

uv run xxx.py

其他

改为华为源:在project.toml 文件中添加以下内容。

[[tool.uv.index]]
url = "https://mirrors.huaweicloud.com/repository/pypi/simple"
default = true

或者

[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

其他命令参考

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

License:  CC BY 4.0