使用uv管理Python项目
编辑
初始化项目
可以使用命令uv init
来创建一个项目目录,会生成入下内容:
uv_project
├── .git
├── .gitignore
├── main.py
├── pyproject.toml
├── .python-version
└── README.md
其中包括自动生成的git仓库和.gitignore
文件、pyproject.toml
项目配置文件和记录python版本的.python-version
文件,以及一个项目说明文README.md
下面是init命令的一些参数与用法:
# 在当前目录下初始化项目
uv init
# 创建uv_project目录并在其中初始化项目
uv init uv_project
# 使用python3.13版本初始化项目
uv init -p cpython-3.13
# 创建uv_project目录并使用python3.13在其中初始化项目
uv init uv_project -p cpython-3.13
如果希望使用指定版本的python初始化项目,可以通uv python list
命令查看所有可用的python版本。
管理依赖
使用 uv 管理项目时,不再需要 requirements.txt
文件来记录项目依赖。uv 通过 pyproject.toml
文件管理依赖库,避免记录多余的依赖项。
例如,要安装 requests
包,只需在项目目录下执行 uv add requests
命令。uv 会自动记录依赖信息,同时避免将 requests
的依赖项添加到依赖列表。如果项目没有虚拟环境,安装依赖时 uv 会自动创建一个符合 Python 版本的 .venv
文件夹来存放虚拟环境。
当拿到一个使用 uv 管理的项目时,首次运行前只需执行 uv sync
命令,即可自动创建虚拟环境并安装所有依赖。
如果是从使requirements.txt
管理的项目迁移到使用uv管理的话,可以直接使用uv add -r requirements.txt
来将依赖添加到pyproject.toml
文件中进行管理,但是这并不能去除不必要的间接依赖,如果需要处理这些间接依赖可以使uv tree
查看项目的依赖树,根据需要手动删除间接依赖。
uv tree
输出的依赖情况
pyproject.toml
文件内容
如上面两图是一个仅安装了requests依赖的项目转到uv管理后产生的依赖情况,可以看到左侧依赖中绿色框选的依赖是间接依赖,但是也出现在了红色的直接依赖中,此时可以根据需要删除右侧pyproject.toml
文件中红色框选的依赖内容。
下面是一些uv管理依赖的命令示例:
# 同步项目依赖
uv sync
# 添加httpx作为项目依赖
uv add httpx
# 添加仅开发环境使用的依赖
uv add pytest --dev
# 删除依赖
uv remove httpx
# 删除仅开发环境使用的依赖
uv remove pytest --dev
# 升级所有依赖
uv lock --upgrade
# 从requirements.txt添加依赖到uv管理
uv add -r requirements.txt
# 查看项目依赖树
uv tree
- 0
- 0
-
分享