Skip to main content

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 文件依赖 requestsrich:

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用于锁定项目依赖版本