uv

2024-09-29

安装

macOSLinux 通过 cURL 安装:

Terminal window
1
curl -LsSf https://astral.sh/uv/install.sh | sh

macOS 还支持通过 Homebrew 安装:

Terminal window
1
brew install uv

uv 默认安装位置是:~/.cargo/bin,如果需要修改安装路径,可以配置 UV_INSTALL_DIR 变量:

Terminal window
1
curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="/custom/path" sh

卸载

Terminal window
1
brew uninstall uv

删除对应目录

Terminal window
1
rm ~/.cargo/bin/uv ~/.cargo/bin/uvx

使用

从项目开始

Terminal window
1
# 创建项目
2
uv init <project_name>
3
4
# 在已有项目中初始化
5
cd <project_name>
6
uv init

初始化项目时,uv 可以指定两种类型:

  1. 应用程序: init --app (默认)
  2. 库(包): init --lib

依赖

Terminal window
1
# 添加
2
uv add fastapi
3
4
# 删除
5
uv remove fastapi

命令

Python 安装和管理

  • uv python
    • install: 安装 Python 版本
    • list: 查看可用的
    • find: 查找已安装的
    • uninstall: 卸载
    • pin: 固定

pip 管理

  • uv venv: 创建虚拟环境
  • uv pip
    • install: 安装软件包
    • show: 显示已安装软件包信息
    • list: 列出已安装软件包
    • freeze: 列出已安装和对应版本
    • uninstall: 卸载软件包
    • tree: 查看依赖树
    • sync: 将环境与锁定文件同步

项目管理

  • uv init: 创建新的项目
  • uv add: 添加依赖
  • uv remove: 删除依赖
  • uv sync: 从配置同步依赖到环境
  • uv tree: 查看依赖关系树

运行脚本

  • uv run: 运行 Python
  • uv add: 向脚本添加依赖项
  • uv remove: 从脚本移除依赖项

Docker 部署

使用 Dockerfile 部署使用 uv 管理的项目:

1
FROM python:3.12-slim
2
3
# Install uv.
4
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
5
6
# Copy the application into the container.
7
COPY . /app
8
9
# Install the application dependencies.
10
WORKDIR /app
11
RUN uv sync --frozen --no-cache
12
13
# Run the application.
14
CMD ["/app/.venv/bin/fastapi", "run", "app/main.py", "--port", "80", "--host", "0.0.0.0"]

参考