UV 使用记录
Installing python
# 安装ptyhon
uv python install
# 安装python, 并设置 `python` 和 `python3` 文件
uv python install --default
# 显示本地已经安装的python(包括系统自带的版本)
uv python list --only-installed
# 显示系统自带的python版本
uv python list --no-managed-python
Init project
# 在当前目录初始化项目
uv init
# 初始化一个 hello-world 项目(自动新建目录)
uv init hello-world
Run
example.py
import sys
print(" ".join(sys.argv[1:]))
# 直接运行
echo 'print("hello world!")' | uv run -
# 没有参数
uv run example.py
# 传递一个参数
uv run example.py test
# 执行python版本运行脚本
uv run --python 3.10 example.py
Declaring script dependencies
使用 uv 运行单个 python 文件,可以指定该文件的依赖, 以下脚本表示 example.py 文件依赖 requests 和 rich:
uv add --script example.py 'requests<3' 'rich'
Using a shebang to create an executable file
example.py
#!/usr/bin/env -S uv run --script
print("Hello, world!")
安装依赖
# 安装最新版本
uv add httpx
# 限制版本
uv add "httpx>=0.20"
# 从 requirements 文件安装依赖
uv add -r requirements.txt
# 根据 pyproject.toml 中声明的依赖保存到 requirements.txt
# ref: https://docs.astral.sh/uv/pip/compile/
uv pip compile pyproject.toml -o requirements.txt
Project
uv项目结构
| 文件/目录 | 用途 |
|---|---|
.python-version | 指定uv使用的python版本 |
.venv/ | 和系统隔离的python环境, 也是项目依赖的存放目录 |
uv.lock | 用于锁定项目依赖版本 |