1. 引言
很多刚接触 Python 的朋友都会遇到这样的困惑:明明在自己电脑上跑得好好的代码,换了一台机器就报错;或者项目 A 需要 Python 3.8,项目 B 需要 Python 3.11,装来装去把系统环境搞得一团糟。这时候,conda 就是解决这些问题的利器。
2. 什么是 conda
conda 是一个开源的包管理系统和环境管理系统,最初由 Anaconda 公司开发,用于简化 Python 及相关科学计算库的安装与管理。它不仅能管理 Python 包,还能管理 Python 版本本身,甚至能管理非 Python 的依赖库(如 C/C++ 库、CUDA 等)。≤199 人企业、个人爱好者、高校、非营利组织:可以免费使用 Anaconda Individual Edition,访问官方 default 源,不需要买商业许可Anaconda。
3. 为什么要用 conda
3.1 环境隔离,互不干扰
conda 最核心的价值在于环境隔离。你可以为每个项目创建独立的虚拟环境,不同环境之间互不影响:
bash
# 创建 Python 3.11 的环境
conda create -n project_a python=3.11
# 创建 Python 3.8 的环境
conda create -n project_b python=3.8
这样,项目 A 升级依赖不会破坏项目 B 的运行环境,彻底告别「装一个包把另一个项目搞挂」的噩梦。
3.2 解决依赖冲突
Python 生态中依赖冲突非常常见:库 X 需要 numpy<2.0,库 Y 需要 numpy>=2.0。conda 通过独立的 solver 自动解析依赖关系,帮你找到兼容的版本组合,避免手动排查依赖地狱。
3.3 跨平台一致性
conda 在 Windows、macOS、Linux 上行为一致。通过 environment.yml 文件,你可以把整个环境配置分享给团队或部署到服务器:
yaml
name: my_project
channels:
- conda-forge
dependencies:
- python=3.11
- numpy
- pandas
- pip
其他人只需一条命令即可复现完全相同的环境:
bash
conda env create -f environment.yml
3.4 科学计算生态友好
conda 对科学计算库(NumPy、SciPy、Pandas、PyTorch、TensorFlow 等)支持极佳,能直接安装预编译的二进制包,避免从源码编译带来的漫长等待和兼容性问题。
3.5 管理非 Python 依赖
很多项目不仅依赖 Python 包,还依赖系统级的 C/C++ 库。conda 可以一并管理这些非 Python 依赖,确保它们在各个平台上都能正确安装。
4. conda 与 pip、virtualenv 的对比
| 特性 | conda | pip + virtualenv |
|---|---|---|
| 管理 Python 版本 | ✅ 支持 | ❌ 不支持(需另装 pyenv) |
| 管理非 Python 依赖 | ✅ 支持 | ❌ 不支持 |
| 依赖解析 | 内置 solver,自动解决冲突 | 依赖 pip 的解析,冲突时需手动处理 |
| 环境隔离 | ✅ 原生支持 | ✅ 通过 virtualenv 支持 |
| 预编译二进制包 | ✅ 丰富 | 部分依赖需源码编译 |
| 适用场景 | 科学计算、数据科学、机器学习 | 通用 Web 开发、轻量项目 |
5. conda 的安装与配置
5.1 安装 conda
conda 分为 Anaconda 和 Miniconda 两种发行版:
- Anaconda:包含大量常用科学计算库的集合版本,开箱即用,但体积较大。
- Miniconda :精简版本,只包含 conda、pip、zlib、python 以及它们所需的包,其余依赖通过
conda install命令自行安装。
下载地址:
- Miniconda 官网:conda.io/miniconda.h...
- Anaconda 官网:www.anaconda.com/download
点击安装即可,不需要另外安装 Python 运行环境。安装过程中出现 Advanced options 选项时:
- 第一个选项:将 Anaconda 的路径加入环境变量;
- 第二个选项:默认将 conda 安装的 Python 定为系统使用的默认版本。
5.2 配置环境变量与初始化


安装完成后,以管理员身份重新打开 cmd,执行初始化命令:
bash
conda init

初始化完成后,以管理员身份重新启动 cmd,使配置生效。
5.3 添加国内镜像源
国内访问官方源较慢,可添加国内大学镜像源加速下载:
bash
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/
目前国内提供 conda 镜像的大学:
- 清华大学:mirrors.tuna.tsinghua.edu.cn/help/anacon...
- 北京外国语大学:mirrors.bfsu.edu.cn/help/anacon...
- 南京邮电大学:mirrors.njupt.edu.cn/
- 南京大学:mirrors.nju.edu.cn/
- 重庆邮电大学:mirror.cqupt.edu.cn/
- 上海交通大学:mirror.sjtu.edu.cn/
- 哈尔滨工业大学:mirrors.hit.edu.cn/#/home(目测哈工...
查看已添加的 channels:
bash
conda config --show channels

恢复默认镜像源:
bash
conda config --remove-key channels
6. 环境管理
6.1 创建环境
创建 Python 版本为 X.X、名字为 env_name 的虚拟环境:
bash
conda create -n env_myfirst01 python=3.12
因为我已经执行过,所以提示是否移除当前存在的环境。 创建完毕后env_name 文件可以在 Anaconda 安装目录的 envs 文件夹下找到。 
6.2 查看环境
bash
conda env list
# 或者
conda info --envs

6.3 删除环境
bash
conda remove -n env_name --all
conda env remove -n env_name
6.4 重命名环境
conda 没有直接的重命名命令,可通过克隆实现(将 --clone 后面的环境重命名成 -n 后面的名字):
bash
conda create -n torch --clone py3 # 将 py3 重命名为 torch
6.5 进入与退出环境
创建完成环境之后,系统会提示如何进入和退出环境:
bash
conda init # 初始化,以管理员重启 cmd
conda activate env_myfirst01 # 进入环境
conda deactivate # 退出环境
7. 在 conda 环境内使用 pip 安装
用命令查找版本信息:
bash
conda search numpy
在 Anaconda 下用 pip 装包的原因 :尽管在 Anaconda 下我们可以很方便地使用 conda install 安装依赖,但 Anaconda 本身只提供部分包,远没有 pip 提供的包多。有时 conda 无法安装我们需要的包,就需要用 pip 将其装到 conda 环境里。
首先进入指定的环境中,然后再通过 pip 安装即可:
bash
conda activate env_name
pip install package_name
8. 卸载 conda
如需彻底卸载 conda,可删除 Anaconda/Miniconda 安装目录,并清理环境变量中的相关配置。
9. 环境迁移
将要迁移的环境打包:
bash
conda pack -n 虚拟环境名称 -o environment.tar.gz
如果报错 No command 'conda pack',尝试使用:
bash
conda install -c conda-forge conda-pack
复制压缩文件到新的电脑,进入 conda 的安装目录:
bash
/anaconda(或者miniconda)/envs/
对于 Ubuntu,可以通过 whereis conda 查看 conda 的安装路径,然后 cd 到 conda 的安装路径:
bash
mkdir environment
# 解压 conda 环境
tar -xzvf environment.tar.gz -C environment
使用 conda env list 查看虚拟环境,进入迁移的环境内,通过 pip list 查看迁移前后包的安装情况。
10. 使用 Mamba 加速安装
Mamba 是 Conda 的一个高性能替代品,能够更快地解决依赖关系。可以通过以下命令安装 Mamba:
bash
conda install mamba -n base -c conda-forge
然后使用 Mamba 安装包:
bash
mamba install package_name
11. IDEA 集成 conda
在 IntelliJ IDEA 中,可以在项目解释器设置里选择 conda 环境作为 Python 解释器,从而在 IDE 中直接使用 conda 管理的虚拟环境进行开发调试。 