Python 环境怎么搭?学术选 conda、企业选 uv、新潮选 pixi

动手之前,先立两条准则:

  • 核心准则:用着顺手、敲着愉悦
  • 延伸准则:尽量少码字、省力

一句话:环境管理工具不是越多越好,而是选一个顺手的,把它用到极致


目录

  1. 为什么 Python 需要"环境管理"
  2. 开发环境全景
  3. conda —— 学术与数据科学的首选
  4. uv —— 企业级工程化的首选
  5. pixi —— 科学与工程兼得的"新物种"
  6. 三选一:决策指南与对比
  7. 同一任务,三种工具的实操对照
  8. 配套环境:终端 + IDE + AI
  9. 总结

一、为什么 Python 需要"环境管理"

Python 生态最大的痛点不是语言本身,而是依赖管理

  • 项目 A 要 numpy==1.24,项目 B 要 numpy==2.0,装在一起就冲突(著名的"依赖地狱");
  • 深度学习项目还要装 CUDA 版 PyTorch,跟系统 Python 纠缠不清;
  • 换一台电脑 / 换同事的电脑,环境还原要半天。

于是有了"环境"(Environment)的概念:把 Python 解释器 + 依赖包 + 非 Python 的库(如 CUDA、MKL、BLAS)打包成一个个彼此隔离的独立空间,项目与项目之间互不干扰,删了重建也毫无负担

目前主流的三种方案,恰好对应三种人群:

工具 出身 气质 典型用户
conda Anaconda 公司,2012 年 老牌、全面、科学计算生态 学生、科研人员、数据科学家
uv Astral(Ruff 团队),2024 年 极速、现代、工程化 企业开发者、团队协作、CI/CD
pixi prefix.dev 公司,2023 年 conda 生态 + 工程化锁文件 需要 conda 生态又想要工程体验的人

二、开发环境全景

一个完整的"开发环境"通常拆成四层,环境管理只是其中一层,但它是地基

打造自己的开发环境
├── 终端环境(20)      —— 命令行日常
├── IDE 环境(14)      —— VSCode / Cursor
├── AI 环境             —— 每人必须有一款熟练使用的 AI 工具
└── Python 环境(25)   —— 本文主角:conda / uv / pixi

其中 AI 环境部分值得单列(第 8 节细讲),核心结论是——“每个人必须要有一款熟练使用的 AI 工具”,并推荐了两款基于 DeepSeek 的工具(DSH、Codex + DeepSeek)。环境搭好后,AI 工具可以直接替你做"查包、查数据、写模型"这些体力活。


三、conda —— 学术与数据科学的首选

3.1 它是什么

conda 是 Anaconda 公司推出的跨语言包管理器 + 环境管理器。它最核心的优势是:不仅能管 Python 包,还能管 Python 之外的东西——CUDA、MKL、BLAS、编译器、R 包、C 库。

这对学术场景(深度学习、数据分析)极其重要:pip install torch 常常因为 CUDA 版本、编译环境不匹配而翻车,而 conda install pytorch 会把配套的 CUDA 运行库一起装上,开箱即用。

注意区分:Anaconda(全家桶,2~3GB,啥都带)与 Miniconda(精简版,只带 conda 本体,按需安装)。学术场景也推荐 Miniconda,省空间、更清爽,需要什么装什么。

3.2 安装

# Windows:下载 Miniconda 安装包(官网 https://docs.conda.io/en/latest/miniconda.html)
# macOS / Linux:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

国内用户建议配置清华镜像源,速度提升明显:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --set show_channel_urls yes

3.3 常用命令速查

# 创建环境(指定 Python 版本)
conda create -n dl python=3.11

# 激活 / 退出环境
conda activate dl
conda deactivate

# 查看环境列表
conda env list

# 安装包(从 conda 源)
conda install numpy pandas

# 从 PyPI 装(conda 源没有的包用 pip 兜底,注意要 pip install,不是 pip3)
pip install torch

# 导出 / 重建环境(学术论文复现常用)
conda env export > environment.yml
conda env create -f environment.yml

# 删除环境
conda remove -n dl --all

💡 提速技巧:conda 的依赖求解(solver)很慢,学术圈常用 mamba(C++ 重写的 conda)替代:conda install mamba -n base -c conda-forge,之后 mamba install xxx 速度快一个数量级。

3.4 案例实操(深度学习环境)

一套标准的 conda 学术工作流实操流程如下:

# 1. 新建项目目录
mkdir dl-case && cd dl-case

# 2. 创建并激活 dl 环境
conda create -n dl python=3.11 -y
conda activate dl

# 3. 安装深度学习与数据处理全家桶
pip install torch numpy pandas scikit-learn torchsummary

# 4. 数据准备:把 手机价格预测.csv 拷到项目下的 data/ 目录

接着配合 DSH(DeepSeek Harness)用三条提示词完成整个建模:

  • 提示词 1当前项目使用 conda 的 dl 环境,检查该环境下有哪些 pip 包
  • 提示词 2检查当前项目 data 目录下的 csv 数据文件:小明创办了一家手机公司……根据这些性能得到 4 个价格区间
  • 提示词 3使用 pytorch 全连接网络进行深度学习模型建模、训练与测试……分 3 层、激活函数 relu、数据处理/训练/评估封装成三个函数、模型保存到 model 目录、代码保存为 model.py

这就是"核心准则——尽量少码字"的极致体现:环境只建一次,代码交给 AI 写

3.5 优点与缺点

✅ 优点 ❌ 缺点
跨语言依赖(CUDA/MKL)管理最强 环境创建慢,求解器耗时
学术生态成熟,教程最多 体积大,Anaconda 全家桶臃肿
支持 Python 多版本切换 环境间隔离靠"激活",切换麻烦
论文复现(environment.yml)标准 与企业工程规范(锁文件)脱节

四、uv —— 企业级工程化的首选

4.1 它是什么

uv 是 Astral 公司(就是写 Ruff 的那家)用 Rust 写的新一代 Python 包管理器,2024 年发布后迅速成为社区宠儿。它最大的标签是——比 pip 快 10~100 倍,同时把 pip、pip-tools、virtualenv、pyenv、poetry 的功能合并成一个工具

对应企业场景的关键词是:团队协作、CI/CD、可复现构建。uv 用 pyproject.toml + uv.lock 解决了这个诉求:

  • pyproject.toml:声明依赖(要什么);
  • uv.lock锁文件,精确到每个依赖的版本与哈希(装出来什么),提交到 Git 后全团队、CI、Docker 得到一模一样的环境

4.2 安装

# Windows(PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

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

# 或者用 pip 装(作为临时工具最方便)
pip install uv

4.3 核心命令速查

# 初始化一个项目(生成 pyproject.toml)
uv init my-project && cd my-project

# 添加依赖(自动解析 + 写锁文件)
uv add numpy pandas scikit-learn

# 添加开发依赖(测试、lint 工具等)
uv add --dev pytest ruff

# 安装/同步环境(按锁文件精确还原)
uv sync

# 运行命令(自动创建 .venv 并同步)
uv run python model.py

# 管理 Python 版本(内置 pyenv 功能)
uv python install 3.11 3.12
uv python pin 3.11

# 查看依赖树
uv tree

# 升级锁定版本
uv lock --upgrade-package torch

4.4 企业实践要点

# pyproject.toml(uv 生成的项目核心)
[project]
name = "dl-project"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
    "numpy>=1.26",
    "pandas>=2.0",
    "torch>=2.2",
]

[dependency-groups]
dev = ["pytest", "ruff"]

团队协作流程

# 新同事 / 新机器:clone 后一条命令搞定一切
git clone <repo> && cd <repo>
uv sync          # 按 uv.lock 精确还原环境,无需手动建环境
uv run pytest    # 直接跑测试

CI / Docker

# Dockerfile 示例:利用 uv 缓存加速构建
FROM python:3.11-slim
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev
COPY . .
CMD ["uv", "run", "python", "model.py"]

注意事项(写进 .gitignore):

.venv/

4.5 优点与缺点

✅ 优点 ❌ 缺点
极速(Rust 编写,秒级解析) 只解决 Python 包,管不了 CUDA 等非 Python 依赖
锁文件 uv.lock,工程可复现 相对年轻,部分旧工具链兼容性待验证
一个工具替代 pip/venv/pyenv/poetry 团队需要学习新规范(pyproject.toml)
CI/Docker 友好,缓存机制成熟 生态围绕 PyPI,conda 源不直接用

💡 如果企业项目确实需要 CUDA 这类非 Python 依赖:uv + conda 混用是常见解法——用 uv 管项目依赖,用 conda 装 CUDA 工具链;uv pip install 也完全兼容在 conda 环境里工作。


五、pixi —— 科学与工程兼得的"新物种"

5.1 它是什么

pixi 是 prefix.dev 公司用 Rust 写的包管理器,可以理解为"现代化重写的 conda":

  • 底层复用 conda 生态(conda-forge 源),所以 conda 能装的东西(CUDA、MKL、ROOT……)它都能装;
  • 上层采用工程化设计pixi.toml(声明式配置)+ pixi.lock(锁文件)+ 自动创建环境、无需手动激活。

对"既要 conda 的科学计算生态、又想要 uv 那样的工程体验"的人来说,pixi 是两者之间的最佳平衡点。它也是近年 HPC(高性能计算)、机器人、数据科学领域增长最快的工具之一。

5.2 安装

# Windows(PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://pixi.sh/install.ps1 | iex"

# macOS / Linux
curl -fsSL https://pixi.sh/install.sh | bash

5.3 核心命令速查

# 初始化项目(生成 pixi.toml)
pixi init dl-pixi && cd dl-pixi

# 添加依赖(conda 生态)
pixi add python=3.11 numpy pandas

# 添加 conda-forge 之外的 channel(如 PyTorch 官方源)
pixi add --channel pytorch pytorch

# 运行命令(自动同步环境,无需 activate)
pixi run python -c "import torch; print(torch.__version__)"

# 定义常用任务(类似 Makefile)
pixi task add train "python model.py"
pixi run train

# 全局安装命令行工具(类似 pipx)
pixi global install gh nvim ipython

# 查看环境信息 / 更新锁文件
pixi info
pixi update

5.4 pixi.toml 长什么样

[project]
name = "dl-pixi"
version = "0.1.0"
channels = ["conda-forge", "pytorch"]
platforms = ["win-64", "osx-arm64", "linux-64"]

[dependencies]
python = "3.11.*"
numpy = ">=1.26"
pandas = ">=2.0"
pytorch = ">=2.2"

[tasks]
train = "python model.py"
test = "pytest"

💡 亮点:platforms 字段声明支持哪些平台,锁文件会为每个平台分别锁定版本,跨平台团队协作时环境一致性远超传统 conda。

5.5 优点与缺点

✅ 优点 ❌ 缺点
conda 生态(CUDA 等非 Python 依赖)+ 锁文件,兼得两者 生态比 conda 年轻,疑难问题资料少
无需手动激活环境,pixi run 一步到位 国内源配置不如 conda 顺手(可用清华镜像)
Rust 实现,比 conda 快很多 与纯 PyPI 工作流(如私有源)磨合中
跨平台锁文件,团队一致性极佳 学习曲线在 uv 与 conda 之间

六、三选一:决策指南与对比

6.1 一张表看懂差异

维度 conda(学术) uv(企业) pixi(现代/科学工程)
开发语言 Python Rust Rust
依赖源 conda-forge + PyPI PyPI conda-forge + PyPI
非 Python 依赖(CUDA 等) ✅ 强项 ❌ 需配合 conda ✅ 强项
锁文件 ❌(environment.yml 较弱) ✅ uv.lock ✅ pixi.lock
环境激活方式 conda activate uv run(自动) pixi run(自动)
速度 慢(可用 mamba 加速) 极快
多 Python 版本管理 ✅(内置)
团队/CI 复现 一般 极强
学习曲线 平缓 中(工程概念多)
生态成熟度 ★★★★★ ★★★★☆ ★★★☆☆

6.2 决策树

你主要做什么?
│
├─ 科研 / 课程 / 深度学习实验(重 CUDA、重复现、求稳)
│   └─ 👉 conda(+ mamba 提速)          【学术场景】
│
├─ 企业项目 / 团队协作 / CI/CD / 服务部署
│   └─ 👉 uv(纯 Python 项目直接上)
│        └─ 需要 CUDA?→ uv + conda 混用  【企业场景】
│
├─ 既要科学计算生态、又想要现代工程体验
│   └─ 👉 pixi                            【现代场景】
│
└─ 只是偶尔跑脚本 / 想装几个命令行工具
    └─ 👉 uv(uvx 一键运行工具)或 pixi global

七、同一任务,三种工具的实操对照

以经典的 dl-case 案例(安装 torch 全家桶并训练)为例,三种工具完全等价:

# ---------- 方式一:conda(学术经典) ----------
conda create -n dl python=3.11 -y
conda activate dl
pip install torch numpy pandas scikit-learn torchsummary
python model.py

# ---------- 方式二:uv(企业工程) ----------
uv init dl-case && cd dl-case
uv add torch numpy pandas scikit-learn torchsummary
uv run python model.py            # 自动建 .venv、自动同步

# ---------- 方式三:pixi(科学工程) ----------
pixi init dl-case && cd dl-case
pixi add python=3.11 torch numpy pandas scikit-learn
pixi run python model.py          # 自动建环境,无需 activate

三种方式产出的最终效果一致:一个隔离的、装了全套深度学习依赖的环境。区别在于——conda 靠"命名环境 + 手动激活"管理,uv 靠"项目内 .venv + 锁文件"管理,pixi 靠"项目内环境 + 锁文件"管理。

对初学者建议:先学 conda(教程多、好理解、学术界通用),等进了企业或团队项目,自然过渡到 uv 或 pixi。


八、配套环境:终端 + IDE + AI

环境管理只是地基,完整的"开发环境"还包括三层,一并给出配置要点。

8.1 终端环境

平台 推荐 说明
Windows Windows Terminal + PowerShell 7 支持多标签、主题、衬线字体
macOS iTerm2 / Warp Warp 自带 AI 命令补全
Linux 系统终端 + tmux 多会话管理

加分项:oh-my-posh(跨平台美化提示符,直接显示当前 conda 环境名,一眼知道自己激活在哪)、zoxide(智能 cd)、fzf(模糊搜索历史命令)。宗旨就一条——“省力”。

8.2 IDE 环境

以 VSCode / Cursor 为例,配置要点:

// settings.json 关键配置
{
  "python.defaultInterpreterPath": "~/.conda/envs/dl/bin/python",  // 指向你的环境解释器
  "python.analysis.extraPaths": ["./src"],                          // 代码跳转
  "ruff.enable": true,                                              // Ruff 扩展:极速 lint + format
  "editor.formatOnSave": true
}

必装扩展:

  • Python(微软官方,调试/智能提示)
  • Pylance(类型检查)
  • Ruff(强烈推荐,格式化 + 静态检查一体,Rust 实现飞快)
  • Jupyter(数据科学必备)

💡 还有一点容易被新手忽略:“找到它的配置文件在哪里,对它进行配置”——装完扩展一定要打开 settings.json 把解释器路径、格式化工具指对,否则"环境建好了 IDE 却用不上"。

8.3 AI 环境

核心观点:“每个人必须要有一款熟练使用的 AI 工具”,常用工具矩阵如下:

类别 工具
网页端 ChatGPT、DeepSeek、豆包
客户端 Workbuddy、Hermes Agent(开源)
Agent 工具 DSH(DeepSeek Harness,开源)、Codex(ChatGPT 桌面版)
VSCode 插件 Codex 插件、Claude Code 插件
CLI 工具 grok build

这里重点推荐两款 基于 DeepSeek 的工具,安装步骤照抄即可:

① DSH(DeepSeek Harness)

# 1. 安装 Node.js:https://nodejs.org/en/download
# 2. (推荐)配置国内镜像
npm config set registry https://registry.npmmirror.com
# 3. 全局安装
npm install -g @deepseek-ai/dsh
# 4. 启动
dsh web            # http://127.0.0.1:3080/
# 5. 配置 DeepSeek API Key:https://platform.deepseek.com/api_keys

# 扩展:安装函数绘图插件(一次即可)
dsh plugin --profile web add dsh-function-plot

② Codex + DeepSeek

# 在 VSCode 中安装 Codex 插件,然后按 DeepSeek 官方文档配置 API:
# https://api-docs.deepseek.com/zh-cn/quick_start/agent_integrations/codex

这两款工具 + 前面建好的环境,就完整闭环了 3.4 节的三条提示词工作流:AI 查包 → AI 分析数据 → AI 写模型代码


九、总结

回到开头的两条准则:

  • 用着顺手、敲着愉悦 → 三种工具没有绝对优劣,只有场景匹配:
    • 学术科研、深度学习实验 → conda(稳妥、生态全)
    • 企业项目、团队协作、CI/CD → uv(极速、锁文件)
    • 想要 conda 生态 + 工程体验 → pixi(新物种、两全)
  • 尽量少码字、省力 → 环境建好后,把终端美化、IDE 配置、AI 工具一次性配到位,之后所有重复劳动(查包、写代码、配环境)都可以交给工具与 AI。

最后送上一句话:环境管理是投资最少、回报最高的一步——一次配好,终身受用。


参考资料

  • uv 官方文档:https://docs.astral.sh/uv/
  • uv GitHub:https://github.com/astral-sh/uv
  • pixi 官方文档:https://pixi.prefix.dev/
  • conda 官方文档:https://docs.conda.io/
  • DeepSeek Codex 集成文档:https://api-docs.deepseek.com/zh-cn/quick_start/agent_integrations/codex

更多推荐