uv 是一个 Python 虚拟环境管理工具,比 Anaconda 更轻量且效率高,适合简单 Python 脚本,以及 Agent 开发使用,本文将介绍 uv 下载、配置、使用,以及结合 PyCharm 的工作流
uv 官网:https://docs.astral.sh/uv/
一、下载与配置
很多同学安装 uv 后发现它还是往 C 盘塞东西。通过以下方法,可以将 uv 的主程序、Python 解释器库、缓存以及镜像源全部定向到 D 盘
(一) 目录结构规划
首先手动创建一个核心根目录,我们以 D:\Code\Python\UV 为例(作者是这样分区的,之后也以此为例,可自行更换 UV 文件夹前的目录结构),并在其下建立三个核心子文件夹:
- bin:存放 uv 可执行程序
- cache:存放所有包的缓存(这是占用空间最大的地方)
- python:存放 uv 下载的各版本 Python 解释器
效果如下:
(二) 环境变量核心配置
这是最关键的一步,通过 Windows用户环境变量进行重定向:
变量名 | 变量值 (示例) | 作用 |
| UV_PYTHON_INSTALL_DIR | D:\Code\Python\UV\python | 强制 uv 将下载的 Python 解释器装到 D 盘 |
| UV_CACHE_DIR | D:\Code\Python\UV\cache | 强制将包缓存存入 D 盘 |
| UV_DEFAULT_INDEX | https://pypi.tuna.tsinghua.edu.cn/simple | 设置清华镜像源,加速下载 |
| Path(添加项) | D:\Code\Python\UV\bin | 确保在任何目录下都能直接运行 uv 命令 |
效果如下:
注意:
- Path 中的添加项,即 D:\Code\Python\bin,最好放在第一个,从而避免与其他 Python 冲突,如 Anaconda 中的 Python 环境,因为我们需要优先使用的是 uv
- 如果 Anaconda 还需要使用,可以单独在 Anaconda Prompt 中使用 Conda 语句,如下:
(三) 下载
以管理员身份运行 PowerShell,输入以下命令(自行替换 D:\Code\Python\UV\bin)
# 1. 在当前会话中明确指定安装目录(确保脚本知道去哪) $env:UV_INSTALL_DIR = "D:\Code\Python\UV\bin" # 2. 执行官方下载并安装脚本 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"$env:UV_INSTALL_DIR说明: 官方安装脚本会检查这个变量。如果你不设置,它默认会去 C:\Users\用户名\.cargo\bin。设置后,它会直接把 uv.exe 和 uvx.exe 下载到你指定的 D:\Code\Python\UV\bin
可使用以下命令检查
# 1. 检查 uv where.exe uv # 2. 检查 cache uv cache dir效果应如下:
现在我们就完成 uv 下载和配置了
二、基本使用
1. 环境管理
uv 以“项目”为单位管理环境,他会为每个项目创建独立的 .venv 文件
- 创建新项目(自动初始化环境)
uv init my_project # 这会创建一个文件夹,里面包含 Python 配置文件 uv init # 这会在当前文件夹创建项目- 创建虚拟环境
uv venv # 默认创建在当前目录的 .venv 文件夹 uv venv --python 3.9 # 指定 Python 版本- 激活环境
使用 uv run 命令时,无需手动激活
- 查看依赖树
清晰展示包的层级关系:
uv tree- 删除环境
直接删除项目下的 .venv 文件夹即可彻底清理
2. 包管理
- 安装与记录依赖
自动安装并记录到项目配置中:
uv add openai # 安装最新版 uv add openai==1.10.0 # 指定版本 uv add --dev pytest # 标记为开发依赖卸载包
uv remove openai同步环境
根据配置文件一键恢复环境状态:
uv sync # 根据配置文件,一键把环境恢复成规定状态查询包信息
uv pip list # 列出已安装包 uv pip show package_name # 查看包详情3. Python 版本管理
这是 uv 杀手级的功能,它能直接管理电脑上的 Python 本身
- 列出电脑上(及官方库里)所有的 Python 版本:
uv python list- 安装指定版本
它会乖乖装进你指定的 D:\Code\Python\UV\python 目录
uv python install 3.12- 在当前目录临时切换 Python 版本
uv venv --python 3.104. 运行与执行
- 直接运行脚本
uv 会自动检查依赖是否装好,自动在环境里运行,你连 activate 都不用输入:
uv run main.py- 临时运行工具
uvx 会下载、运行、然后清理,不占地方
uvx textual-paint5. 配置与维护
- 查看缓存路径
uv cache dir- 清理缓存
uv cache clean- 更新工具自身
uv self update6. uv 工作流(串联前文的 uv 命令)
我们将 uv 的工作流总结为“初始化 -> 开发 -> 运行 -> 维护”四个核心阶段
6.1. 项目启动(初始化)
每当你有一个新点子,比如想写个新 Agent 时:
1. 初始化项目:
uv init my_project (这会创建一个文件夹,里面包含 Python 配置文件) uv init (这会在当前文件夹创建项目)- 结果:它会生成
pyproject.toml(项目清单)和hello.py - 注意:此时还没创建虚拟环境,不用急
2. 创建虚拟环境:
uv venv (默认创建在当前目录的 .venv 文件夹) uv venv --python 3.9 (指定 Python 版本)6.2. 依赖管理(装包)
你想用什么功能,就“加”什么包:
1. 添加普通依赖(如 OpenAI SDK):
uv add openai python-dotenv langchain2. 添加开发依赖(如代码格式化工具,项目运行不需要,但写代码需要):
uv add --dev ruff pytest3. 移除包(可选):
uv remove langchain6.3. 代码运行(无需激活!)
这是 uv 最爽的地方,你永远不需要手动执行 activate 命令
1. 直接运行脚本:
uv run hello.py- 原理:uv run 会自动识别当前目录下的 .venv,进去跑完代码,然后出来
2. 运行特定的 Python 命令:
uv run python -m some_module6.4. 环境同步与协作(克隆别人的项目)
如果你从 GitHub 下载了一个别人的 Agent 项目,或者在另一台电脑上继续开发:
1. 一键还原环境:
uv sync- 结果:uv 会读取 pyproject.toml,自动把 Python 版本和所有包安装得一模一样
6.5. Python 版本控制(按需切换)
如果你的 Agent 需要在特定版本下运行:
- 下载指定版本:uv python install 3.12
- 强制当前项目使用特定版本:
uv venv --python 3.126.6. 临时工具调用(uvx 魔法)
如果你只想临时用一个 Python 工具(比如想看一眼某个 JSON 文件,或者用某个爬虫工具),但不想把它装进你的项目里:
uvx some-tool-name- 结果:uv 会创建一个临时环境运行它,运行完自动销毁,不占空间,不污染你的项目
以上就是 uv 的简单使用
三、uv + PyCharm 联合使用
PyCharm 在 Python 编程方面运用十分广泛,在这部分会介绍 uv 结合 PyCharm 的工作流(作者本人总结,可能有不足)
(一) 首先先介绍一下 Pycharm 中环境的选择
利用 PyCharm 新建项目时,有三种解释器选择,以下是说明
1. 项目 venv ——最常用
- 含义:这是 Python 官方的标准虚拟环境。它是在你的项目文件夹里创建的一个独立的 .venv 文件夹
- 特点:
- 独立性:环境跟着项目走。删掉项目文件夹,环境也就没了
- 轻量:只包含运行该项目必需的包
- 与 uv的关系:uv也是为当前项目创建 .venv,但在使用上可跳过创建项目以及选择解释器步骤,具体见后文“uv + PyCharm 终极工作流(CLI 优先)”
2. 基础 conda ——Anaconda 的“新开户”
- 含义:这是让 PyCharm 调用 conda.exe 去创建一个全新的Conda 虚拟环境
- 特点:
- 环境通常存储在你指定的 envs_dirs 目录下,而不是在项目文件夹里
- 你可以利用 Conda 强大的科学计算包管理能力
- 使用场景:你想为这个新项目创建一个全新的 Conda 环境时选它
3. 自定义环境 ——“老兵报道”
- 含义:这是指使用电脑上已经存在的 Python 解释器
- 特点:
- 复用性:如果已有配置好的虚拟环境,如 Conda 虚拟环境,而你现在的项目也想用这个,直接选它就行
- 使用场景:你想让新项目直接“套用”以前建好的 Conda 虚拟环境或全局 Python
(二) uv + PyCharm 终极工作流(CLI 优先)
这套流程的核心是:把环境管理的权力完全交给 uv,PyCharm 只需要闭着眼睛用
1. 第一步:在终端(CLI)一气呵成
不要在 PyCharm 的“新建项目”界面纠结,直接在 PowerShell 里操作:
uv init my_agent_project # 1. 创建项目结构 cd my_agent_project # 2. 进入目录 uv venv --python 3.13 # 3. 可省略 uv add openai langchain # 4. 核心:这一步会自动创建 .venv 并安装包2. 第二步:PyCharm 直接“拎包入住”
2.1 打开 PyCharm,点击Open(不要点 New Project)
2.2 选中刚才的 my_agent_project 文件夹
2.3 PyCharm 的自动感应:
- 现在的 PyCharm 非常聪明。它看到目录下有 .venv 文件夹,通常会直接弹窗问你:"Python virtual environment found. Do you want to use it?"
- 直接点OK
- 如果它没弹窗,你只需要在右下角点击 Python 解释器,手动指向一次项目里的 .venv/Scripts/python.exe。全过程只需这一回
- 如下图,一般会自动识别到