uv 项目管理
12 July 2025
uv 项目管理
# -------- 管理 python --------
# 列出所有可用的 python 版本
uv python list
# 安装 python, 指定版本 cpython-3.11
uv python install cpython-3.11
# 指定python版本运行脚本
uv run -p 3.11 ./vct3.py
# 使用指定python版本的交互界面
uv run -p 3.11 python
# 直接使用pypy的交互界面,没有pypy就会自动安装
uv run -p pypy python
# -------- 管理依赖 --------
# 初始化一个python start项目
uv init -p 3.11.0
# 使用 uv 添加一个库,会基于当前的python版本自动在当前目录创建 .venv 虚拟环境
uv add openai
# 此时就可以使用不带参数的 uv run 来使用当前的虚拟环境运行 python 脚本了
uv run ./vct3.py
# 打印依赖关系树
uv tree
# 添加 dev 参数避免打包时把 ruff 库打进来
uv add ruff --dev
# 使用 uv remove 把 ruff 库从依赖中删除
uv remove ruff --dev
# 使用 uv tool 命令将想安装的工作直接安装到系统当中
uv tool install ruff
# uv tool uninstall 卸载(删除)工具
uv tool uninstall ruff
# 列出安装的工作
uv tool list
# -------- 打包 --------
# 在 pyproject.toml 文件中添加
[project.scripts]
vct3 = "main:helloworld"
# 再使用 uv build 打包
uv build .
# 或
uv build
# 安装本地包
uv install .
# 或
uv tool install dist/vct3test-0.1.0-py3-none-any.whl
# -------- 其他 --------
# 直接用 python 创建虚拟环境
python -m venv .venv
# 手动激活虚拟环境
source .venv/bin/activate
# 输出 requirements.txt
uv pip compile pyproject.toml --output-file requirements.txt
# 或
uv pip list --format freeze > requirements.txt
# 或
uv pip freeze > requirements.txt
# 在 uv 虚拟环境中安装 pip 并激活虚拟环境
uv pip install pip
source .venv/bin/activate
# 把当前项目安装到虚拟环境中(会先打包后安装,并且会把所有声明的依赖都安装进来)
uv pip install .
# 加上 -e 参数就不会把源代码打包到 site-packages 目录
uv pip install -e .
# 使用 uv add xxx 一条命令完成.venv虚拟环境、pyproject.toml配置以及依赖的安装
uv add flask
# 执行 uv sync 则会自动读取pyproject.toml并搭建好虚拟环境以及依赖的安装
uv sync
# 使用 uv run 在虚拟环境 .venv 的上下文中执行python, 而不需要手动激活虚拟环境
uv run ./main.py
