Conda 完全使用指南:从入门到精通
写在前面:如果你还在为 Python 版本冲突、依赖地狱、环境隔离而头疼,那么这篇 Conda 教程就是为你准备的。本文将从零开始,带你系统掌握 Conda 的核心用法,覆盖日常开发中 90% 的场景。
一、Conda 是什么?为什么选它?
1.1 一句话理解 Conda
Conda 是一个跨平台的包管理器 + 环境管理器。它不仅能安装 Python 包,还能管理 C/C++ 库、R 语言包等非 Python 依赖,这是 pip 做不到的。
1.2 Conda vs pip
| 管理范围 | Python + 非 Python 依赖 | 仅 Python 包 |
| 环境管理 | ✅ 内置 | ❌ 需配合 venv/virtualenv |
| 二进制分发 | ✅ 预编译二进制 | ⚠️ 部分需要本地编译 |
| 依赖解析 | SAT 求解器,严格一致 | 较宽松,可能冲突 |
| 适用场景 | 数据科学、多语言混合项目 | 纯 Python Web 开发 |
💡 最佳实践:两者并不互斥。推荐以 Conda 管理环境和底层依赖,pip 作为补充安装 Conda 仓库中没有的纯 Python 包。
二、安装与配置
2.1 推荐安装 Miniconda
Anaconda 体积庞大(3GB+),实际开发推荐轻量版 Miniconda:
# Linux / macOS
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# Windows
# 从 https://docs.conda.io/en/latest/miniconda.html 下载安装包
2.2 配置国内镜像(加速下载)
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 –set show_channel_urls yes
验证配置:
conda config –show channels
2.3 更新 Conda 自身
conda update -n base conda
三、环境管理(核心技能)
3.1 创建环境
# 基本创建
conda create -n myenv python=3.11
# 指定精确版本
conda create -n myenv python=3.11.9
# 创建时同步安装包
conda create -n myenv python=3.11 numpy pandas scikit-learn
# 从已有环境克隆
conda create -n myenv_clone –clone myenv
# 从 YAML 文件创建(团队协作必备)
conda env create -f environment.yml
3.2 激活与退出
conda activate myenv # 激活
conda deactivate # 退出当前环境
3.3 查看与管理
conda env list # 列出所有环境
conda remove -n myenv –all # 删除整个环境
conda remove -n myenv pkg_name # 删除环境中某个包
3.4 环境导出与复现
# 导出完整环境
conda env export > environment.yml
# 仅导出手动安装的包(更干净,推荐)
conda env export –from-history > environment.yml
生成的 environment.yml 示例:
name: myenv
channels:
– conda–forge
– defaults
dependencies:
– python=3.11
– numpy=1.24
– pandas=2.0
– pip:
– some–pip–only–package==1.2.3
四、包管理
4.1 安装包
# 在当前环境安装
conda install numpy
# 在指定环境安装
conda install -n myenv numpy
# 指定版本
conda install numpy=1.24
# 指定频道
conda install -c conda-forge pytorch
# 同时安装多个包
conda install numpy pandas matplotlib scikit-learn
4.2 卸载与更新
conda uninstall numpy # 卸载
conda update numpy # 更新单个包
conda update –all # 更新环境中所有包
4.3 搜索与查看
conda search numpy # 搜索可用版本
conda list # 列出当前环境已安装包
conda list -n myenv # 列出指定环境的包
conda info numpy # 查看包的详细信息
4.4 混合使用 pip
当 Conda 仓库中没有目标包时:
# ⚠️ 务必先激活目标环境
conda activate myenv
# 再用 pip 安装
pip install some-rare-package
# 建议:pip 安装的包记录在 environment.yml 的 pip 段落下
⚠️ 注意事项:
- 不要在 base 环境中用 pip
- 避免在同一环境中反复交替使用 conda 和 pip 安装同一类包
- pip 安装后尽量不要再 conda install,否则可能覆盖 pip 包
五、频道(Channels)管理
5.1 常用频道
| defaults | Anaconda 官方默认频道 |
| conda-forge | 社区维护,包最全最新 |
| bioconda | 生物信息学专用 |
| pytorch | PyTorch 官方频道 |
5.2 设置优先级
# 添加频道并设为最高优先级
conda config –prepend channels conda-forge
# 查看当前频道顺序
conda config –show channels
💡 推荐:将 conda-forge 设为首选频道,其包更新更快、兼容性更好。
六、高级技巧
6.1 清理缓存释放空间
conda clean –all # 清理索引缓存、未使用包、tarball
conda clean –packages # 仅清理未使用的包
6.2 解决依赖冲突
# 使用 libmamba 求解器(速度提升 10x+)
conda install -n base conda-libmamba-solver
conda config –set solver libmamba
# 创建环境时强制重新求解
conda create -n myenv python=3.11 –solver libmamba
6.3 批量操作
# 从 requirements.txt 安装(兼容 pip 格式)
while read requirement; do conda install –yes $requirement || pip install $requirement; done < requirements.txt
6.4 环境变量与脚本集成
# 在 shell 脚本中使用
#!/bin/bash
source ~/miniconda3/etc/profile.d/conda.sh
conda activate myenv
python train.py
七、常见问题 FAQ
Q1: conda activate 不生效?
# 初始化 shell
conda init bash # 或 zsh / fish / powershell
# 重启终端后生效
Q2: 创建环境特别慢?
- 换国内镜像(见第二节)
- 启用 libmamba 求解器(见 6.2)
- 减少不必要的频道
Q3: Conda 和 Mamba 的关系?
Mamba 是 Conda 的高性能替代品,命令几乎完全兼容。如果追求极致速度:
conda install -n base mamba -c conda-forge
# 之后用 mamba 替代 conda 即可
mamba create -n myenv python=3.11
Q4: 如何彻底卸载 Conda?
conda install anaconda-clean
anaconda-clean –yes
rm -rf ~/miniconda3
# 删除 .bashrc/.zshrc 中的 conda 相关行
八、速查表
| 创建环境 | conda create -n env python=3.x |
| 激活环境 | conda activate env |
| 安装包 | conda install pkg |
| 卸载包 | conda uninstall pkg |
| 更新包 | conda update pkg |
| 列出环境 | conda env list |
| 导出环境 | conda env export > environment.yml |
| 从YAML创建 | conda env create -f environment.yml |
| 删除环境 | conda remove -n env –all |
| 清理缓存 | conda clean –all |
| 搜索包 | conda search pkg |
结语
Conda 的学习曲线并不陡峭,核心命令不过十来个。建议收藏本文作为日常参考,遇到具体问题时按需查阅。记住一个原则:每个项目一个独立环境,永远不要污染 base 环境。 养成这个习惯,你的 Python 开发体验将提升一个台阶。
📝 本文最后更新于 2026 年 7 月,内容基于 Conda 24.x 版本。如有变动请以官方文档为准。

