uv 现代 Python 环境管理手册

本文档总结了在 Windows 环境下从 Miniforge 彻底迁移到 uv 的操作流程,旨在为工业数字化及 AI 研究项目提供稳定、高速的开发环境。

一、 彻底清理旧环境 (Miniforge/Conda)

在切换到 uv 之前,确保旧环境已清理干净,避免路径冲突:

  • 官方卸载/手动删除:即使控制面板中没有卸载选项,也应优先进入安装目录(如 C:\ProgramData\miniforge3 或 C:\Users\用户名\miniforge3)查找 Uninstall-Miniforge3.exe。运行该程序可自动清理注册表。若无卸载程序,再手动删除整个文件夹。
  • 环境变量:在系统环境变量的 Path 中删除所有指向 miniforge 或 conda 的条目。
  • 配置文件与用户目录:用户目录通常位于 C:\Users\你的用户名(例如 C:\Users\Zhu Qingchuan)。你需要在此目录下删除 .condarc 文件和 .conda 文件夹。这是彻底清除 VS Code 解释器列表中旧环境残留的关键步骤。
  • 执行别名:在 Windows 设置中关闭“应用执行别名”里的 Python 拦截。

二、 uv 的安装与路径配置

  • 安装命令 (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    
  • 路径生效:安装后若无法识别 uv 命令,需将 C:\Users\用户名\.local\bin 手动添加到系统环境变量 Path 中,或重启终端。
  • 自更新:定期运行 uv self update 保持工具处于最新版本。

三、 Python 版本管理 (避坑指南)

对于 AI 项目(如 FastAPI, llama-cpp, Pillow),版本稳定性至关重要:

  • 安装指定版本:建议安装成熟的 3.12 版本,避免使用尚未普及的 3.14 预览版。
    uv python install 3.12
    
  • 项目版本锁定:在项目根目录下强制锁定版本,确保 uv run 调用的是正确的解释器。
    uv python pin 3.12
    
  • 配置修改:若报错版本不兼容,需在 pyproject.toml 中将 requires-python 修改为 “>=3.12”。

四、 项目初始化与依赖管理

针对已有 requirements.txt 的项目,采用以下标准流程:

  1. 初始化uv init(生成项目描述文件 pyproject.toml)。
  2. 创建环境uv venv(在当前目录生成 .venv)。
  3. 导入依赖uv add -r requirements.txt
    • 注:uv add 会自动解析并写入 pyproject.toml。若只想单纯安装不记录,使用 uv pip install -r requirements.txt。
  4. 同步环境uv sync(确保本地 .venv 与配置文件完全一致)。
uv init
uv venv
uv add -r requirements.txt
uv sync

五、 自动化运行与脚本优化

  • 免激活运行:无需 activate 环境,直接使用 uv run <脚本名> 启动,uv 会自动关联虚拟环境。
  • 批处理脚本 (.bat):利用 %~dp0 定位路径,确保双击即可启动 FastAPI 后端。
    @echo off
    uv run uvicorn app_fastapi:app --host 127.0.0.1 --port 17865
    pause
    
  • 快捷指令:在 pyproject.toml 的 [project.scripts] 模块配置别名,实现 uv run start 这种极简操作。

六、 网络代理与镜像源深度配置

在处理涉及海外资源的 AI 项目时,网络连接是核心环节。以下是针对不同网络策略的具体实现方案:

1. 系统代理配置 (以 Clash 为例)

uv 会自动识别系统的 HTTP_PROXY 环境变量。如果自动识别失败,可在终端中手动指定:

  • PowerShell (临时生效):
    $env:HTTP_PROXY = "http://127.0.0.1:7890"
    $env:HTTPS_PROXY = "http://127.0.0.1:7890"
    
  • CMD (临时生效):
    set HTTP_PROXY=http://127.0.0.1:7890
    set HTTPS_PROXY=http://127.0.0.1:7890
    
  • 永久生效: 建议在“系统环境变量”中添加上述两个变量,地址通常为 http://127.0.0.1:7890。

2. 国内主流镜像源地址

若代理不稳定或在无外网环境下工作,推荐使用以下高速镜像源:

  • 清华大学 (TUNA): https://pypi.tuna.tsinghua.edu.cn/simple
  • 阿里云 (Aliyun): https://mirrors.aliyun.com/pypi/simple/
  • 百度 (Baidu): https://mirror.baidu.com/pypi/simple

3. 通过 pyproject.toml 固定镜像源

在项目配置文件中直接写入索引,可确保所有协作者都使用相同的下载源:

[[tool.uv.index]]
name = "tuna"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true  # 将此源设为默认搜索源

4. 处理 SSL 证书与安全限制

在使用代理下载特定 AI 库时,若遇到 SSL 证书验证报错,可尝试以下紧急方案:

  • 跳过证书校验 (不推荐长期使用): 设置环境变量 UV_INSECURE = “true”。
  • 检查代理模式: 确保 Clash 未开启“HTTPS 解密”或“MITM”功能,这通常是导致证书报错的元凶。

七、 Git 版本控制最佳实践

为了确保 2027 年结题时环境仍能复现,请严格遵守提交规范:

  • 必须提交:pyproject.toml(项目蓝图)和 uv.lock(精确的版本快照)。
  • 必须忽略:在 .gitignore 中加入 .venv/、__pycache__/ 以及大型模型权重文件夹(如 models/)。

八、 VS Code 开发环境配置

为了在编辑器中获得完整的语法支持和调试能力,需要进行以下关键设置:

  1. 插件安装:在左侧扩展商店搜索并安装 Microsoft 官方提供的 “Python” 插件。它是实现环境自动识别、代码补全和调试的基础。
  2. 选择解释器:在编辑器内按下 Ctrl + Shift + P,输入 Python: Select Interpreter。在弹出的列表中,始终优先选择标记为 “Recommended” 的项,其路径应指向项目目录内的 .venv\Scripts\python.exe。
  3. 清理过时环境残留:若列表中仍显示已删除的环境(如 smart_design),需前往用户目录 C:\Users\你的用户名 手动删除 .conda 文件夹,随后点击 VS Code 解释器选择框右上角的刷新图标即可。
  4. 终端自动化:配置完成后,VS Code 的内置终端在启动时会自动运行激活脚本,你会看到类似 (.venv) 或 (项目名) 的前缀,这表示开发环境已准备就绪。