uv 是一个 Python 包管理和虚拟环境工具。我用了一下觉得非常方便,特将使用流程记录如下:
创建项目
首先根据需要的项目名称,执行
uv init project_name
会生成一系列项目文件。包括主程序maim.py,以及版本控制和环境设置的文件。
创建虚拟环境
为了避免多个项目冲突,把各个项目的库文件隔离,建议创建虚拟环境。执行
cd project_name
uv venv
默认路径为 .venv
注:也可以uv venv --python 3.11,会自动安装并创建相应版本的虚拟环境。
添加/删除包
根据项目需要,添加/删除库文件,执行
uv add package_name
uv remove package_name
会把用到的包信息记录在pyproject.toml文件中。
注:如果这个包只在开发环境下使用,使用uv add --dev package_name,则发布时不会把它打包进去。
依赖
要查看包之间的依赖关系,执行
uv tree
会用树状列出依赖关系。
同步
在其他电脑可以下载该项目后,需要同步用到的库文件等环境,执行
uv sync
会把相应的包安装到虚拟环境下。
更新
需要更新项目的库文件时,执行
uv sync --upgrade
会自动修改uv.lock文件的版本信息。
运行
在运行时,不再需要进入虚拟环境,只需要执行
uv run main.py
就会自动调用虚拟环境,无需手动激活。这一步真的非常方便。
工具
对于全局性工具,比如 pytest 所有项目都可能涉及,就最好把它作为工具安装,执行
# 安装
uv tool install pytest
# 卸载
uv tool uninstall pytest
# 查看
uv tool list
# 升级
uv tool upgrade pytest # 升级单个包
uv tool upgrade --all # 全部升级
就可以在全局直接运行 pytest。
此外,其他操作我暂时还是按照原本的使用习惯。今后使用中如果发现uv有更合适替代操作的再来补充。
