📘 简介

Conda 是一个开源的包管理和环境管理系统,适用于 Python、R、Ruby、Lua、Scala、Java、JavaScript、C/C++、FORTRAN 等多种语言。

  • Anaconda:完整的数据科学平台,包含 Conda 及大量预装包(约3GB)
  • Miniconda:轻量级版本,只包含 Conda 和 Python(约400MB)

🔧 环境管理

创建环境

创建一个新的 Python 环境:

1
conda create -n myenv python=3.9

说明:创建名为 myenv 的环境,指定 Python 版本为 3.9


创建环境并安装指定包:

1
conda create -n myenv python=3.9 numpy pandas

说明:创建环境的同时安装 numpy 和 pandas 包


从配置文件创建环境:

1
conda env create -f environment.yml

说明:根据 environment.yml 文件创建环境


激活和退出环境

激活环境:

1
conda activate myenv

说明:激活名为 myenv 的环境


退出当前环境:

1
conda deactivate

说明:退出当前激活的环境,返回到 base 环境


查看环境

列出所有环境:

1
conda env list

说明:显示所有已创建的环境及其路径


或者使用:

1
conda info --envs

说明:与 conda env list 功能相同


查看当前环境信息:

1
conda info

说明:显示 Conda 的详细配置信息


删除环境

删除指定环境:

1
conda remove -n myenv --all

说明:完全删除名为 myenv 的环境及其所有包


或者使用:

1
conda env remove -n myenv

说明:删除指定环境的另一种方式


克隆环境

克隆已有环境:

1
conda create -n newenv --clone myenv

说明:创建 myenv 的副本,命名为 newenv


导出和导入环境

导出环境配置:

1
conda env export > environment.yml

说明:将当前环境的配置导出到 environment.yml 文件


导出跨平台兼容的配置:

1
conda env export --from-history > environment.yml

说明:只导出手动安装的包,提高跨平台兼容性


📦 包管理

安装包

在当前环境安装包:

1
conda install numpy

说明:在当前激活的环境中安装 numpy 包


在指定环境安装包:

1
conda install -n myenv numpy

说明:在 myenv 环境中安装 numpy 包


安装指定版本的包:

1
conda install numpy=1.20.0

说明:安装特定版本的 numpy


从指定频道安装包:

1
conda install -c conda-forge package_name

说明:从 conda-forge 频道安装包


安装多个包:

1
conda install numpy pandas matplotlib

说明:一次性安装多个包


更新包

更新指定包:

1
conda update numpy

说明:将 numpy 更新到最新版本


更新所有包:

1
conda update --all

说明:更新当前环境中的所有包


更新 Conda 自身:

1
conda update conda

说明:更新 Conda 到最新版本


更新 Anaconda:

1
conda update anaconda

说明:更新整个 Anaconda 发行版


卸载包

卸载指定包:

1
conda remove numpy

说明:从当前环境中卸载 numpy 包


从指定环境卸载包:

1
conda remove -n myenv numpy

说明:从 myenv 环境中卸载 numpy 包


查看包

列出当前环境的所有包:

1
conda list

说明:显示当前环境中已安装的所有包及版本


列出指定环境的包:

1
conda list -n myenv

说明:显示 myenv 环境中的所有包


搜索包:

1
conda search numpy

说明:搜索可用的 numpy 包及其版本


查看包的详细信息:

1
conda info numpy

说明:显示 numpy 包的详细信息


⚙️ 配置管理

频道管理

查看当前频道:

1
conda config --show channels

说明:显示已配置的所有频道


添加频道:

1
conda config --add channels conda-forge

说明:添加 conda-forge 频道


移除频道:

1
conda config --remove channels conda-forge

说明:移除 conda-forge 频道


设置频道优先级:

1
conda config --set channel_priority strict

说明:设置严格的频道优先级策略


配置国内镜像源(提速)

配置清华镜像源:

1
2
3
4
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/pkgs/r
conda config --set show_channel_urls yes

说明:添加清华大学 Anaconda 镜像源,加速下载


配置中科大镜像源:

1
2
3
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

说明:添加中科大 Anaconda 镜像源


恢复默认源:

1
conda config --remove-key channels

说明:删除自定义频道配置,恢复默认设置


其他配置

查看所有配置:

1
conda config --show

说明:显示所有 Conda 配置项


设置安装包时自动确认:

1
conda config --set always_yes true

说明:安装包时不再需要手动确认


关闭自动确认:

1
conda config --set always_yes false

说明:恢复安装时的确认提示


🧹 清理和维护

清理未使用的包和缓存:

1
conda clean --all

说明:清理所有缓存、未使用的包和 tar 包


只清理缓存:

1
conda clean --packages

说明:只清理包缓存


只清理 tar 包:

1
conda clean --tarballs

说明:只清理下载的 tar 包


清理索引缓存:

1
conda clean --index-cache

说明:清理索引缓存文件


🔍 信息查询

查看 Conda 版本:

1
conda --version

说明:显示当前 Conda 的版本号


查看 Python 版本:

1
python --version

说明:显示当前环境中 Python 的版本


查看环境中 Python 路径:

1
which python

说明:显示当前使用的 Python 解释器路径(Linux/Mac)


Windows 系统查看 Python 路径:

1
where python

说明:显示当前使用的 Python 解释器路径(Windows)


📝 environment.yml 示例

创建一个标准的环境配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
name: myenv
channels:
- conda-forge
- defaults
dependencies:
- python=3.9
- numpy=1.20.0
- pandas>=1.3.0
- matplotlib
- scikit-learn
- pip
- pip:
- requests
- beautifulsoup4

说明

  • name:环境名称
  • channels:包来源频道
  • dependencies:依赖包列表
  • pip:通过 pip 安装的包

🚀 常用组合命令

快速创建并激活环境

1
conda create -n myenv python=3.9 -y && conda activate myenv

说明:创建环境后自动激活(-y 表示自动确认)


导出并备份环境

1
conda env export --from-history > environment_$(date +%Y%m%d).yml

说明:导出环境配置并添加日期标记(Linux/Mac)


批量更新并清理

1
conda update --all -y && conda clean --all -y

说明:更新所有包后清理缓存


💡 最佳实践

1. 环境隔离

为每个项目创建独立的环境,避免包版本冲突:

1
2
conda create -n project1 python=3.9
conda create -n project2 python=3.8

2. 使用 environment.yml

通过配置文件管理项目依赖,便于团队协作和环境复现:

1
2
3
4
5
# 导出
conda env export --from-history > environment.yml

# 导入
conda env create -f environment.yml

3. 定期清理

定期清理缓存和未使用的包,释放磁盘空间:

1
conda clean --all

4. 配置镜像源

使用国内镜像源提高下载速度,特别是在网络环境较差时。


5. 使用虚拟环境而非 base

不要在 base 环境中安装项目依赖,保持 base 环境的纯净:

1
2
3
4
5
6
7
8
# ❌ 不推荐
conda activate base
conda install pandas

# ✅ 推荐
conda create -n myproject python=3.9
conda activate myproject
conda install pandas

🆚 Conda vs Pip

特性 Conda Pip
包管理
环境管理 ❌(需配合venv)
语言支持 多语言 仅 Python
依赖解析 更强 较弱
包来源 Anaconda 仓库 PyPI
二进制包 部分支持

建议:优先使用 Conda 管理环境和安装包,如果 Conda 中没有的包再使用 Pip 安装。


🔗 相关资源


⚠️ 常见问题

1. conda 命令找不到

解决方法:将 Conda 添加到系统环境变量 PATH 中。


2. 环境激活失败

解决方法

1
2
conda init bash  # Linux/Mac
conda init powershell # Windows PowerShell

然后重启终端。


3. 包冲突

解决方法:创建新环境或使用 conda install --force-reinstall 强制重装。


4. 下载速度慢

解决方法:配置国内镜像源(见上文”配置国内镜像源”部分)。


📌 总结

Conda 是一个强大的包和环境管理工具,掌握其常用命令可以大大提高开发效率。建议:

  1. ✅ 为每个项目创建独立环境
  2. ✅ 使用 environment.yml 管理依赖
  3. ✅ 定期更新和清理
  4. ✅ 配置镜像源提速
  5. ✅ 保持 base 环境的纯净

💡 提示:本文所有命令代码块都支持一键复制,点击代码块右上角的复制按钮即可快速使用!

📖 推荐阅读