跳转至

从conda转uv快速上手

👋 欢迎来到算栗工坊! 我是 Zihan,持续关注并分享关于 LLM、Python 开发及算法等方向的思考与实践。 🌐 全网同名算栗工坊 | Github | 小红书 | 知乎


【2026.4.15更新】

1. uv init xhs_scraper

  • 你以前的做法: mkdir xhs_scraper -> cd xhs_scraper -> uv venv

  • 新模式的魔法: 这一个命令,不仅帮你建了文件夹、建了 .venv 虚拟环境,最重要的是,它帮你生成了一个 pyproject.toml 文件。 这东西就是现代版的 requirements.txt

2. uv add playwright

  • 你以前的做法:source .venv/bin/activate -> 然后 uv pip install playwright -> 最后还得记得 uv pip freeze > requirements.txt

  • 新模式的魔法: 自动下载安装包,并且自动把依赖写进 pyproject.toml。你再也不用手动去维护那恶心的 requirements.txt 了!依赖管理变成了全自动"记账"。

3. uv run ...

  • 你以前的做法: 每次连上 SSH,都得先 source .venv/bin/activate,一不小心忘了激活,就把包全装到全局环境里去了。

  • 新模式的魔法: 免激活! 只要你在项目目录里,输入 uv run python spider.py,它会自动找到那个 .venv,在虚拟环境里把代码跑完,跑完自动退出。你的终端永远保持干净,不会被一堆 (myenv) 搞得乱七八糟。


【需要有conda使用基础】

uv 是用 Rust 编写的,它的包解析和安装速度通常比 Conda 或传统的 pip 快几十倍甚至上百倍。

在习惯了 Conda 工作流的前提下,使用 uv 其实非常简单。

conda和uv最大的区别

  • Conda是全局中心化的。 也就是运行 conda create -n myenv,这个环境会保存在 Anaconda 的安装目录下。无论你在哪个项目中,都可以 conda activate myenv
  • uv默认是项目本地化的。 当使用 uv venv 时,它会在当前的文件夹里创建一个名为 .venv 的隐藏文件夹。这和 Python 标准的 venv 是一样的,好处是环境和项目代码绑定,不容易和别的项目冲突。

卸载Anaconda

(win)直接找uninstall.exe (linux)略

安装uv

windows

powershell

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

linux(..)

bash

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

验证安装

关掉刚刚的命令行窗口,再重新打开一个

uv --version
输出版本号就代表装好了

重装python

由于之前把anaconda卸载了,机器上没有python环境,打开vscode会弹出这个东西: image.png 点击安装python

使用uv

创建虚拟环境

在终端里,在项目根目录下,输入:

uv venv --python 3.xx
也可以不指定python版本 这相当于conda create

激活虚拟环境

windows

.venv\Scripts\activate
linux(。。)
source .venv/bin/activate
相当于conda activate

激活后,前面会显示.venv或者你的项目名

安装依赖包

# 安装单独的包
uv pip install requests

# 批量安装
uv pip install -r requirements.txt

Conda vs uv 完全等效命令速查表

命令 Conda 命令 uv 命令
安装特定的 Python 版本 (包含在 create 中) uv python install 3.10
创建新环境 conda create -n myenv python=3.10 uv venv --python 3.10
激活环境 conda activate myenv source .venv/bin/activate(Linux)
.venv\Scripts\activate(Windows)
安装包 conda install numpy uv pip install numpy
卸载包 conda remove numpy uv pip uninstall numpy
查看已安装的包 conda list uv pip list
导出环境依赖 conda env export > environment.yml uv pip freeze > requirements.txt
根据文件创建环境 conda env create -f environment.yml uv pip install -r requirements.txt

【重点】uv进阶用法

conda里面是deactivate,uv里面也是deactivate

但是"必须先激活、用完再退出"是Conda的全局环境管理思维!!

咱uv是"基于工作目录自动感知"的管理思维:只要当前目录(或上级目录)里有个 .venv 文件夹,所有的 uv 命令就会极其听话地只对这个环境生效,绝不乱动系统的 Python。

1. 丝滑包管理

完全不需要激活环境,只要在 .venv 同级目录: - uv pip install pandas:直接把包精准装进当前的 .venv 里。 - uv pip list:直接查看当前环境装了什么包。 - uv pip tree:(强烈推荐!) 这个命令会把你当前环境的包以"依赖树"的形态打印出来。 - uv pip freeze > requirements.txt:一键导出当前环境的依赖。

2. 万物皆可 uv run

  • uv run <script>.py:直接在当前项目环境下运行脚本。
  • uv run python:直接进入当前虚拟环境的 Python 交互模式(REPL)。
  • uv run jupyter lab:(核心重点!) uv 会自动用 .venv 里的 Python 启动 Jupyter。
  • uv run pytest:直接运行当前环境下的单元测试。

3. 一次性"阅后即焚"环境

  • uv run --with matplotlib,seaborn test_memory.py uv 会在极其隐蔽的系统缓存里,瞬间建一个临时环境,装上这俩包,跑完你的代码出完图,然后直接把环境扬了,不留一丝痕迹。

4. 极速环境管理

  • uv venv:在当前目录下瞬间创建一个纯净的 .venv
  • uv python install 3.10:直接下载指定版本的 Python。

FAQ

VS Code 找不到正确 venv /静态分析失效

项目套项目会导致这个问题,左边资源管理器打开项目根目录即可。 方法1:VS Code左上角文件 → 打开文件夹 方法2:终端载入项目根目录,输入code .

终端里conda环境套uv环境

终端自动给我开了一个conda环境,又自动开了venv。输入conda deactivate把conda环境关掉是正确的,但是每次都手动关一下很烦。

终端输入以下内容即可

conda config --set auto_activate false
这样就把自动激活conda环境关掉了


🌟 保持联系,继续探索!

版权声明:本文遵循 CC BY-NC-SA 4.0 协议。