🦔Python开发 - uv工具使用
2025-8-27
| 2025-8-27
0  |  0 分钟
URL
type
status
date
slug
summary
tags
category
icon
password

🚀 uv是什么?

uv 是 Rust 写的「一站式 Python 项目管理器」,将原本需要 pip + venv + pip-tools + pyenv 等多个工具才能完成的任务整合成一条命令,且速度提升 10-100 倍。

🧩 它到底能干啥?

传统做法
uv一条命令搞定
说明
pyenv install 3.12
uv python install 3.12
下载 & 安装 CPython
python -m venv .venv
uv venv
创建虚拟环境
pip install -r requirements.txt
uv sync
安装依赖并锁定版本
pip install requests
uv add requests
加依赖并自动写入锁文件
pip-compile+pip-sync
uv lock/uv sync
生成并同步锁定文件
pip install black && black .
uvx black .
零安装运行一次性工具
pip list --tree
uv tree
可视化依赖树

⚡ 核心优势

  1. 极速:并行解析 + Rust 实现,比 pip 快 10-100 倍。
  1. 一体化:集成包管理、虚拟环境、Python 版本控制和脚本运行功能。
  1. 零配置:自动识别 pyproject.tomlrequirements.txt,无迁移成本。
  1. 可锁定:默认生成 uv.lock,确保团队/CI 环境 100% 一致。

🎯 典型场景

  • 新项目快速启动:uv inituv add flaskuv run app.py
  • 老项目无缝迁移:将 requirements.txt 放入目录,执行 uv sync 即可
  • CI/CD 环境:一行 uv sync --frozen 秒级还原完整环境
  • 临时工具使用:uvx ruff format . 用完即走,无需全局安装
一句话记住:
uv = Python 生态的 "cargo" —— 有了它,Python 开发也能像 Rust 一样丝滑。

🚀 从零开始,用 uv 打造全新 Python 项目


0️⃣ 安装 uv(一次性)

平台
一行命令
macOS / Linux
curl -LsSf <https://astral.sh/uv/install.sh> \| sh
Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm <https://astral.sh/uv/install.ps1> \| iex"
验证

1️⃣ 创建项目骨架

目录一览

2️⃣ 虚拟环境 & 激活

提示符变成 (.venv)

3️⃣ 依赖管理(日常三板斧)

目的
命令
添加运行时依赖
uv add requests fastapi
添加开发工具
uv add --dev pytest ruff
锁定并同步
uv sync

4️⃣ 写代码

推荐结构
示例 src/demo_proj/main.py

5️⃣ 运行 & 开发工作流


6️⃣ 打包 & 发布(可选)


7️⃣ 一键复现(给同事 / CI)


📌 命令速查表

任务
一行命令
切换 Python 版本
uv python pin 3.11
导出 requirements.txt
uv export -o requirements.txt
查看依赖树
uv tree
清理缓存
uv cache clean

🎉 完成!
你已经拥有了一个「可运行、可测试、可打包、可复现」的现代 Python 项目。

🚀 修改镜像源为国内常用pypi源

1️⃣ 全局配置(所有项目生效)

平台
配置文件路径
一键创建目录
Windows
%APPDATA%\\uv\\uv.toml
mkdir %APPDATA%\\uv
Linux / macOS
~/.config/uv/uv.toml
mkdir -p ~/.config/uv

🔹 常用镜像源模板-公共源(腾讯 + 阿里 + 清华)


2️⃣ 项目级配置(仅当前项目生效)

将以下内容写入项目根目录的 pyproject.toml

3️⃣ 临时指定(命令行一次性)


🔍 查看当前配置


💡 小贴士
  1. 全局配置适合个人开发机;
  1. 项目配置便于团队协作;
  1. 命令行临时指定适合 CI/CD 或一次性测试。

🚀 使用 uv 从本地 CPython 安装包安装 Python

如果你想完全离线使用本地已下载的 CPython 安装包(如 .tar.gz.zip),uv 支持通过本地路径安装,以下是完整步骤

🔧 步骤一:准备本地安装包

  1. https://github.com/astral-sh/python-build-standalone/releases 下载对应系统的 CPython 安装包,如:
    1. 放入本地目录,例如:

      🔧 步骤二:设置环境变量(告诉 uv 使用本地包)

      Windows(PowerShell):

      Linux/macOS:

      ⚠️ 注意路径格式必须是 file:// + 绝对路径,且不能指向 .tar.gz 文件本身,而是所在目录。

      🔧 步骤三:安装指定版本

      此时 uv 会从你指定的本地目录查找对应版本的安装包,不会联网下载

      ✅ 可选:配置为全局默认(不依赖环境变量)

      你也可以在项目的 pyproject.toml 中添加:

      🧪 验证是否成功

      输出中应包含你刚安装的版本,如:

      📌 总结一句话

      设置 UV_PYTHON_INSTALL_MIRROR=file:///路径 后,uv python install <版本> 就会优先使用本地 CPython 安装包,无需联网。
       

      🚀 使用 uv 设置默认的 Python 版本


      ✅ 场景 1:为整个系统设置默认 Python(全局)

      • uv python install:安装指定版本(如果还没安装)。
      • uv python pin:在当前用户目录下创建一个默认版本链接,后续所有项目默认使用该版本。
      ⚠️ 该命令会在你的用户目录下创建一个 ~/.local/share/uv/python 的符号链接,影响所有未指定 Python 版本的项目。

      ✅ 场景 2:为某个项目设置默认 Python(推荐)

      进入项目根目录后执行:
      这会在项目根目录下创建 .python-version 文件:
      以后在该目录下运行 uv runuv sync 时,都会自动使用该版本。

      🔍 查看当前默认版本

      输出示例:

      🧹 取消默认设置(仅项目级)


      📌 一句话总结

      • 全局默认uv python pin 3.12.4(用户级)
      • 项目默认:进入项目目录后 uv python pin 3.12.4(创建 .python-version
       
      Develop
    2. Python
    3. 开发
    4. Android文件管理工具Umami - 网站流量分析工具
      目录