零基础上手Conda:安装、创建环境、管理依赖的完整指南
言简意赅的讲解Conda解决的痛点
在数据科学与深度学习项目中,Python 版本冲突 和 二进制依赖不一致(CUDA、MKL 等)经常导致 “本机能跑、同事跑不动” 的尴尬。Conda 通过为每个项目创建隔离环境,彻底解决 Python 版本不一致与底层库冲突问题。本教程一步步讲解 Conda 的安装、环境创建、依赖复现和常见报错排查,助你快速摆脱“版本地狱”。
目录
- Conda 版本选择:Anaconda 与 Miniconda
- 安装步骤(Windows / macOS / Linux)
- 创建与激活环境
- 包管理:安装、升级、卸载
environment.yml
一键复现- 环境导出、备份、删除
- 高级技巧:Mamba、channel 优先级、Conda+Pip 协同
- 常见错误速查
1. Conda 版本选择
方案 | 体积 | 自带包 | 适合人群 |
---|---|---|---|
Anaconda | ≈4 GB | 科学计算全家桶 | 离线环境、一次装齐 |
Miniconda | <400 MB | 仅 Conda 本身 | 精简、按需安装 (推荐) |
2. 安装步骤
2.1 Windows
- 访问 https://docs.conda.io/en/latest/miniconda.html
- 下载
Miniconda3-latest-Windows-x86_64.exe
- 安装时勾选 Add Miniconda3 to PATH
- 打开 Anaconda Prompt 测试:
conda --version
2.2 macOS / Linux
# macOS Intel/AMD 示例,Apple Silicon 请下载 arm64 安装包
curl -LO https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
bash Miniconda3-latest-MacOSX-x86_64.sh
source ~/.bashrc # 或 ~/.zshrc
conda --version
3. 创建与激活环境
# 创建名为 garbage_classify 的隔离环境,指定 Python 3.10
conda create -n garbage_classify python=3.10 -y# 激活 / 退出
conda activate garbage_classify
conda deactivate# 查看已存在的全部环境
conda env list
4. 包管理:安装、升级、卸载
# 安装指定版本
conda install numpy=1.23.5# 按通道安装 GPU TensorFlow 及 CUDA、cuDNN
conda install -c conda-forge tensorflow=2.10 cudatoolkit=11.2 cudnn=8.1# 升级 / 卸载
conda update pillow
conda remove scipy
通道配置
在~/.condarc
中设置严格优先级,避免跨仓库冲突:channel_priority: strict channels:- conda-forge- defaults
5. environment.yml
一键复现
在项目根目录新建 environment.yml
:
name: garbage_classify
channels:- conda-forge
dependencies:- python=3.10- tensorflow=2.10.0- cudatoolkit=11.2- cudnn=8.1- pillow- matplotlib- pip- pip:- opencv-python
然后执行:
conda env create -f environment.yml
conda activate garbage_classify
此文件即可随代码一起提交,团队成员或 CI/CD 服务器均能秒还原相同环境。
6. 环境导出、备份、删除
# 仅导出“显式安装”的包(推荐,可读性高)
conda env export --from-history > env_min.yml# 导出完整依赖树(含间接依赖)
conda env export > env_full.yml# 删除不再需要的环境
conda remove -n garbage_classify --all -y
7. 高级技巧
7.1 Mamba —— Conda 的极速替身
conda install -n base -c conda-forge mamba
mamba install pytorch torchvision -c pytorch
Mamba 采用 C++ 重写解析器,速度可提升 5–10 倍。
7.2 Conda + Pip 协同
- 原则:能用 Conda 不用 Pip;必须用时先激活目标环境再
pip install
。 - 在
environment.yml
中嵌入 Pip 依赖(见第 5 节示例)。
7.3 Channel 优先级
defaults
官方仓库稳定conda-forge
更新快、包更丰富- 建议设置
strict
,先搜索conda-forge
,找不到再回退defaults
。
8. 常见错误速查
错误/现象 | 解决方案 |
---|---|
PackagesNotFoundError | 添加 -c conda-forge ;检查拼写;运行 conda update conda |
UnsatisfiableError | 降级冲突包、移除旧版本;使用 Mamba 重新解析 |
DLL load failed (Windows) | 安装 VS2015–2022 运行库;确认 MKL/OpenMP 正确安装 |
CUDA 版本不匹配 | nvidia-smi 查看驱动,对应安装 cudatoolkit 、cudnn |
Conda HTTPError / Timeout | 换源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge |
通过上述内容,你就已经基本理解了这个方法,基础用法我也都有展示。如果你能融会贯通,我相信你会很强
Best
Wenhao (楠博万)