前言
第一次接触 Python 时,最早使用的环境管理工具就是 Anaconda。不过实际体验却懵懵懂懂,只知道安装完一大堆东西后,会弹出一个黑框,启动后还能进入一个网页,经过一顿配置就可以边写边运行了。对于初学 Python 的我来说,整个过程没有形成任何清晰的概念体系,因此很快就放弃了对 Anaconda 的使用。
后来逐渐接触到 venv 才明白,做项目最好创建虚拟环境,而不是一股脑把所有包都安装在同一个地方。这解决了我绝大部分的问题,开发环境也变得井井有条。最近我还转向了 uv 来管理开发环境,体验相当不错——不仅安装速度极快,还能统一管理各种版本的 Python。
不过,最近进组接触 AI 相关项目后,发现不少框架都依赖 Anaconda,于是我又重新安装了它,以便环境同步。借此机会,做一个简短的教程记录。
Anaconda 介绍与安装

相对官方的介绍:Anaconda是一个开源的 Python 发行版本,专为数据科学,机器学习和人工智能设计,包含了 Python、Conda 包管理器以及众多科学计算工具。
官方下载连接:https://www.anaconda.com/download
下载完成后执行下面的指令之一(两个效果一样)
conda env listconda info --envs
然后会看到类似下面的输出,其中 base 是默认环境,带 * 的表示当前激活的环境。
# conda environments:#base * /opt/anaconda3myproject /opt/anaconda3/envs/myproject
安装完 Anaconda 后,建议先配置国内镜像源和更快的依赖解算器,这会让后续安装快上好几倍。
# 设置清华大学镜像源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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/conda config --set show_channel_urls yes# 安装并启用 libmamba 解算器(conda 22.11+ 已内置,可选升级)conda install -n base conda-libmamba-solverconda config --set solver libmamba
Anaconda 基本使用
创建并激活环境
# 创建 test 环境名,并指定 python 版本为 3.10conda create -n test python=3.10# Windows 默认禁止运行脚本,这会导致 Conda 的激活脚本被拦截,执行下面指令即可解决Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser# 激活环境conda activate test
退出并删除环境
# 退出当前的 conda 环境conda deactivate# 删除 test 环境conda remove -n test --all
包管理
在我的理解中,conda 更擅长解决“底层运行时依赖”的问题,尤其是在 AI 与科学计算场景下。例如:CUDA、PyTorch、OpenCV、FFmpeg、NumPy、科学计算库以及各类 C/C++ 扩展模块。因此我现在更倾向于:使用 conda 管理底层运行环境,再使用 pip 或 uv 管理业务层 Python 包。
conda + pip 包管理(最常用)
# 第一步:优先使用 conda 安装底层运行时依赖conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia# 第二步:用 pip 安装业务依赖(纯 Python 包)pip install fastapi uvicorn pydantic
conda + uv 包管理(速度快)
# 若没安装 uv ,首先执行下面的命令powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # windowscurl -LsSf https://astral.sh/uv/install.sh | sh # ubuntu/mac# 验证 uv 是否安装成功uv --version
# 第一步:优先使用 conda 安装底层运行时依赖conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia# 第二步:用 uv 安装包(用法和 pip 类似)uv pip install fastapi uvicorn pydantic
这里并没有完全采用 uv 的 pyproject.toml 工程化工作流,而是更多将 uv 当作 pip 的高速替代方案使用。因为目前很多 AI 项目依然基于 requirements.txt 构建,因此这种方式在实际开发中会更加兼容。
导出与重建环境
# 导出环境conda env export > environment.yml# 重建环境conda env create -f environment.yml# 更新已有环境conda env update -f environment.yml --prune
不过需要注意的是: 直接导出的 environment.yml 有时会包含大量平台相关依赖(比如一些 linux 中才会存在的内容),因此实际项目中,通常还会手动精简部分内容,避免跨平台时出现兼容问题。
结语
以前我一直觉得:Anaconda 太重、太慢,甚至很多时候有些“黑盒”。尤其是在接触了 venv 与 uv 之后,会明显感受到现代 Python 开发工具的轻便与简洁,在速度与体验上非常优秀。但真正开始接触 AI 项目后,我才逐渐意识到:conda 解决的很多时候并不是简单的 Python 包安装问题,而是复杂运行时环境的统一管理。尤其是在 CUDA、PyTorch、深度学习等这些场景下,环境稳定性往往比安装速度更加重要。
因此,我现在在人工智能场景下的使用方式逐渐演变为:conda 负责底层运行时环境,pip / uv 负责业务层 Python 包。而对于 Web 开发、小型项目而言,uv 依然是首选。所谓不同工具解决不同问题,而不是单纯比较谁“更先进”。