UV实战教程,我啥要从Anaconda切换到uv来管理包?

简介: 本文对比Anaconda“手动挡”与uv“全自动挡”环境管理:uv以“项目即环境”为核心,支持`uv init`一键初始化、自动下载Python、智能依赖管理(`uv add/sync/run`)及PyCharm无缝对接,大幅提升Python开发效率与协作体验。(239字)

开篇先简单对比一下两者

看不懂也没关系,后面我会用实战给你演示。

1. 以前 Anaconda 的逻辑:手动挡

  1. 第一步: 你先去 Anaconda 软件里手动创建一个环境(比如叫 my_env)。
  2. 第二步: 你得“激活”它(conda activate)。
  3. 第三步: 你在里面安装包。
  4. 第四步: 你去 PyCharm 那个长长的列表里,翻半天找到这个 my_env 的路径,把它选上。

2. 现在 uv 的逻辑:全自动挡

uv 的逻辑是:项目即环境

  1. 不用提前建环境: 你只需要在项目文件夹里输入 uv init。它会自动生成一个 pyproject.toml(这个文件就是你的“点菜清单”)。
  2. 自动管理解释器: 你以前要自己下载安装 Python(没python用不了pip),现在你在项目里说一句“我要用 Python 3.12”,uv 发现你没装的话,它会静默帮你下载好。你不需要去官网找安装包。
  3. PyCharm 对接更简单: 在 PyCharm 里,你直接选“uv”,它会自动扫描项目里的那个清单(pyproject.toml),然后自动把该装的包都装在项目目录下的 .venv 文件夹里。

下面开始实战。

我们首先安装一下uv。

1. 安装UV步骤

  1. 在任务栏的搜索框输入 PowerShell,右键点击“以管理员身份运行”。

  2. 复制下面这一行命令并粘贴进去(按回车):

    PowerShell

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    

    image-20260310043130458

3验证安装:

安装完成后,关闭当前的 PowerShell 窗口,重新打开一个。输入以下命令:

PowerShell

   uv --version

如果你看到了类似 uv 0.x.x 的版本号,恭喜你,已经装好了!

image-20260310043336950

我把基本语法罗列了出来,看不懂就直接跳到下面的实战。

这个是和pip的对比

  • | 命令 | 用途 | 对应传统命令 |
    | -------------------------- | ------------------------------------------- | ---------------------- |
    | uv venv | 在当前目录创建虚拟环境 (.venv) | python -m venv .venv |
    | uv pip install <pkg> | 安装指定的 Python 包 | pip install <pkg> |
    | uv pip freeze | 列出已安装的包及其版本 | pip freeze |
    | uv pip compile | 将 pyproject.toml 转为 requirements.txt | pip-compile |
    | uv pip sync | 根据 lock 文件同步环境(删除多余包) | pip-sync |

UV项目管理(新一代工作流)

如果你在开发一个完整的项目,这个是 uv 的项目模式,它会自动处理虚拟环境。

  • uv init:在当前文件夹初始化一个新的 Python 项目(生成 pyproject.toml)。
  • uv python find :查看当前项目正在使用的是哪个路径下的 Python。
  • uv add <pkg>:添加依赖并自动更新 pyproject.toml 和锁文件。
  • uv remove <pkg>:移除依赖。
  • uv sync:确保项目环境与锁文件完全一致。
  • uv run <script.py>最强命令之一。它会自动在虚拟环境中运行脚本,如果环境不存在,它会帮你建好。

Python 版本管理

再也不需要 pyenv 或手动下载 Python 了。

  • uv python install 3.12:下载并安装指定版本的 Python。
  • uv python list:查看系统中已安装的和可供下载的 Python 版本。
  • uv python pin 3.11:固定当前项目使用的 Python 版本。

工具运行 (uvx)

如果你只想临时运行一个工具(比如 ruffblack),而不想把它安装到全局:

  • uvx <tool>:下载、缓存并运行一个 Python 工具。

    比如:uvx ruff check .

多说无益,我们来实战一下

简单介绍下我的现状:

我之前的默认环境是Anaconda,然后我现在新建了一个项目,我需要用这个UV来帮我去管理环境

以前的流程是,我需要在Anaconda新建一个环境,然后激活这个环境,然后在里面下载我这个需要的包,而且包如果比较大的话,时间会比较长,流程会比较繁琐

我们来看看UV怎么样

打开cmd

image-20260310045430258

uv python find

可以看到我们用的是Unconductor的默认环境

image-20260310045626763

切换到我们的项目路径

image-20260310045740521

然后执行

uv init

image-20260310050024418

这个问题是因为 uv init 默认会把你的当前文件夹名(“图片”)作为 Python 项目的名字。

但在 Python 的规范里,项目/包名不能包含中文字符,只能使用字母、数字、下划线 _ 或连字符 -

我们改完文件名再重新回到CMD

回到我们的项目目录

image-20260310051111191

输入

uv init

这一步是进行项目初始化,这样就成功了

image-20260310051253208

我们看看它给我们生成了什么

pyproject.toml

readme.md

.gitigore

.python-version

image-20260310051442583我们拆解下:

1. pyproject.toml —— 项目的“大脑”

这是最重要的一个文件。在现代 Python 开发中,它取代了以前乱七八糟的 setup.pyrequirements.txt 和各种工具的配置文件。

  • 干嘛用的:它记录了项目的元数据(名字、版本、作者)以及项目依赖
  • 怎么用:当你运行 uv add pillow 时,uv 会自动把 pillow 写进这个文件里。以后你把项目发给别人,别人只需要运行 uv syncuv 就会根据这个文件里的清单,把所有的包原封不动地装好。

2. readme.md —— 项目的“脸面”

这是一个标准的 Markdown 文档。

  • 干嘛用的:用来写项目的自我介绍。

3. .gitignore —— 项目的“过滤器”

  • 干嘛用的:用 Git 来管理代码,这个文件会告诉 Git:“哪些东西不要上传”。
  • 为什么重要uv 自动帮你写好了规则。它会忽略 .venv(虚拟环境文件夹)。因为虚拟环境很大且因人而异,我们通常只分享代码和配置文件(如 pyproject.toml),让别人在自己电脑上重新生成环境。

4. .python-version —— 版本的“锚点”

这是 uv 非常贴心的一个设计。

  • 干嘛用的:它里面只写了一个版本号(比如 3.12)。
  • UV最大优势:当你在这个文件夹下运行 uv run 时,uv 会先看一眼这个文件。如果它发现你系统里没装 3.12,它会自动帮你下载一个纯净的 3.12 放在缓存里,确保你的项目永远运行在正确的 Python 版本上。

确实很人性化,这真是为python程序员量身定制的。

好,我们回到cmd

我这个项目用到了这个包,我先安装一下

输入

uv add pillow

速度比pip和conda快不少,

从终端输出里,我们可以看到几个非常关键的信息:

  1. 它借用了 Anacondauv 发现我的电脑里已经有 D:\Anaconda3\python.exe 了,所以它很聪明地直接拿这个版本作为基础来创建环境,没让我再等下载。
  2. 创建了 .venv:它在我的 image 文件夹里建了一个 虚拟环境。
  3. 安装成功pillow==12.1.1 已经下载好了。

image-20260310052300907

如果我们不想要这个版本的Python

可以在之前就用

uv python install 3.11

我这个是已经构建了

所以我需要用这个命令改一下

uv python pin 3.13

image-20260310052824206

然后我们来同步一下,让它按照说明书来同步环境

输入

uv sync

image-20260310053154326

验证一下看现在是什么环境

输入

uv run python --version

没问题,他还自动下载了 pilow

uv run main.py

忘了说了,前面UA还生成了一个main.py

我们运行下

uv run main.py

image-20260310053434683

下面是uv最屌的

他会自动下包,

我们来一起操作一下

用pycharm打开我们的2.2py

开头加上

# /// script
# dependencies = [
#   "numpy",
#   "pillow",
# ]
# ///

image-20260310053841880

回到cmd

输入

uv run 2.2.py

自动下载了numpy

image-20260310054225587

这个的确能方便我们以后来进行项目管理

image-20260310054303800

我们把pycharm里面的这个环境,也换成我们刚才uv创建的这个环境

点击我们用的这个环境 ,我这里是D:Anaconda3

再点击 解释器设置

image-20260310054425028

添加本地解释器

image-20260310054450421

因为它用的是venv

直接弹窗让我们用这个环境了

点击 选择现有解释器

image-20260310054733593

我们运行一下

缺numpy

image-20260310055223362

为啥没全自动下好?

uv run 确实全自动下包了,但它为了不把你的项目环境搞乱,把包装进了一个“临时环境”。

模式 你的操作 它是怎么干活的 结果
项目模式 (安家) uv add numpy 它把 numpy 写进“说明书”(pyproject.toml),然后装进我们的“项目环境”(.venv)。 PyCharm 变绿了,以后谁都能用。
脚本模式 (住酒店) uv run 2.2.py (带注释) 它看到注释,认为:“这只是个临时任务,我单独给它下好包跑完就行,别弄脏了主人的特定的.venv。” PyCharm 依然报红,因为它没进项目环境。

我们打开看看,他下载了在临时目录

这样挺高明的,跑代码可以直接用这个临时环境(主环境)

平常项目的时候可以用项目环境

image-20260310055609163

我们回到cmd

输入

uv add numpy

image-20260310055749251

再回到pycharm

执行一下Py

没问题

image-20260310055837787

⚠️ 给 Anaconda 用户的3 个提醒

  1. 路径的区别

    • Anaconda:环境通常存在 C:\Users\Name\anaconda3\envs\...
    • uv:环境默认就在你项目文件夹里的 .venv。删掉这个文件夹,环境就没了,非常干净,但你也别误删了。
  2. 如何迁移依赖?

    如果你的项目原本有一个 requirements.txt,你可以运行:

    Bash

    uv add -r requirements.txt
    

    这会把旧包全部搬进 uv 的管理体系里,更方便快捷。

  3. 和uv互不干扰

    你可以同时安装 Anaconda 和 uv。在同一个项目里,你用 python main.py 调用的是 Anaconda 的默认环境,而用 uv run main.py 调用的是 uv 的环境。不过我建议既然用了 uv,就全程使用 uv 命令。

总结一下:为什么从 Anaconda 切换到 uv?

通过实战可以看到,uv 的优势非常明显:

  1. 项目即环境,管理更轻松
    • uv 自动在项目文件夹生成 .venv,不再需要手动创建、激活环境,也不用在 PyCharm 里翻半天找解释器。
    • 项目依赖写在 pyproject.toml,一条命令就能同步环境,团队协作更顺畅。
  2. Python 版本自动化管理
    • 可以直接用 uv python install <version> 下载指定版本,.python-version 锚定项目版本,保证项目在正确的 Python 上运行。
    • 这极大避免了安装多个解释器、手动切换版本的繁琐流程。
  3. 依赖安装更快、更智能
    • uv add <pkg> 将包直接装进 .venv,保持环境干净;
    • uv run <script.py> 可临时运行脚本、自动下包,不污染主环境;
    • 临时环境和项目环境互不干扰,灵活性高。
  4. IDE 对接无压力
    • PyCharm 直接选择 .venv 即可,环境一致性有保证,运行、调试更顺畅。
  5. 平滑迁移和共存
    • 原来的 Anaconda 环境可以保留,同时迁移旧项目依赖非常简单(uv add -r requirements.txt)。
    • 不用担心和旧环境冲突,可以逐步切换到 uv 全流程管理。

如果你是一个像我一样,受够了 Anaconda 臃肿和 Pip 缓慢的开发者,uv 就是那个能让你重新爱上 Python 开发的神器。

感谢看完,如果觉得这篇“技术教程”对你有帮助,随手点个赞、在看、转发三连吧

如果想第一时间看到我的技术教程,也可以给我个星标**⭐**。

~~谢谢你看我的文章,我们,下期再见。

相关文章
|
1月前
|
缓存 Rust 开发者
UV详解:替代pip、conda的下一代Python包与环境管理工具
UV是Astral团队推出的Rust编写的高性能Python包管理工具,旨在解决pip与conda在速度、功能割裂、环境不一致和资源冗余等方面的痛点。它集包安装、虚拟环境、依赖锁定、Python版本管理、脚本运行及打包发布于一体,兼容现有生态,安装速度快10–100倍,轻量高效,适合纯Python项目开发与团队协作。(239字)
853 8
|
18天前
|
存储 人工智能 关系型数据库
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
OpenClaw插件是深度介入Agent生命周期的扩展机制,提供24个钩子,支持自动注入知识、持久化记忆等被动式干预。相比Skill/Tool,插件可主动在关键节点(如对话开始/结束)执行逻辑,适用于RAG增强、云化记忆等高级场景。
739 56
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
|
4天前
|
人工智能 弹性计算 数据可视化
阿里云OpenClaw部署实操教程:轻量应用服务器+百炼免费大模型
OpenClaw(“小龙虾”)是一款开源AI智能体,不仅能聊天,更能自动处理文件、运行代码、收发邮件等任务。本教程教你用阿里云轻量服务器+百炼免费大模型,零代码10分钟部署专属AI数字员工!
236 25
|
18天前
|
存储 人工智能 API
OpenClaw多Agent搭建喂饭级教程:阿里云/本地部署+百炼API配置+实战避坑指南
2026年,OpenClaw的爆火并非源于复杂的技术架构——其核心框架难度仅相当于“带初级推荐算法的前后端通信App”,真正的价值在于构建了行业共识:让分散的Agent开发走向标准化,开发者无需再反复沟通架构设计,可聚焦于功能落地与场景创新。更关键的是,它天然支持多Agent协同,完美破解了单Agent的Context窗口瓶颈,让“专事专做”成为AI效率提升的核心路径。
624 7
|
18天前
|
人工智能 安全 程序员
50%的人给了差评:龙虾为何在技术论坛翻车了?
OpenClaw(龙虾)AI工具因“自动赚钱”“代约主播”等夸张宣传走红,但吾爱破解论坛投票显示:50%技术用户未下载且不认可其能力。技术圈冷静源于见惯“神器”泡沫——AI擅写代码(搬砖),却难懂需求、统筹系统。它不是神药,而是待磨的砍柴刀。
193 3
50%的人给了差评:龙虾为何在技术论坛翻车了?
|
26天前
|
人工智能 前端开发 Serverless
10 分钟部署 Qwen3!阿里云 FunctionAI 模板实测,成本低至 ¥0.5/小时
通义千问Qwen3正式开源8款混合推理模型,含2款MoE(如Qwen3-235B-A22B)和6款Dense模型(从0.6B到32B),支持119种语言、思考/非思考双模式,在代码、数学等基准测试中表现优异。依托阿里云函数计算FC与FunctionAI平台,提供vLLM/SGLang/Ollama等多种部署方式,开箱即用。
746 30
|
12天前
|
安全 数据建模 测试技术
2026阿里云SSL证书价格全解析:免费版与付费版对比及申请指南
阿里云SSL证书提供免费DV单域名(Digicert,3个月)及多品牌付费方案(DV/OV/EV),覆盖测试到金融级安全需求。2026年价格透明,含WoSign、GlobalSign等国际品牌,新老用户享5折起优惠,申请流程一键便捷。(239字)
|
2月前
|
Rust 安全 Docker
使用 uv 一键创建并激活 Python 虚拟环境(附完整脚本)
本文介绍基于 `uv` 的自动化脚本 `activate_env.sh`,一键完成安装 uv、创建并激活虚拟环境、安装依赖及环境信息输出,提升 Python 项目初始化效率,适用于个人开发、团队协作与 CI/CD 场景。
|
27天前
|
弹性计算 人工智能 缓存
100元到5000元预算如何选择阿里云服务器配置?
2026阿里云高性价比服务器指南:99元起享2核2G+200M带宽(轻量仅38元/年),100–5000元预算全覆盖——从入门博客到企业级8核32G、AI推理等场景,续费同价、新老同享,附官方活动与算力补贴领取入口。
160 23
|
1天前
|
机器学习/深度学习 缓存 监控
大模型应用:矩阵乘加(GEMM)全解析:大模型算力消耗的逻辑与优化.68
GEMM(矩阵乘加)是大模型算力核心,占Transformer计算量90%以上。本文系统解析其数学原理、高维适配、算力测算公式,并详解INT8/INT4量化、矩阵分块、硬件加速与批处理四大优化策略,结合代码示例与性能监控方法,助力高效推理落地。
90 17