2. Conda安装与配置:从零搭好你的基础环境

这一章咱们亲手把Conda装好。你可能觉得“安装软件谁不会啊”,但Conda的安装和配置藏着不少细节。我在项目中见过太多次因为初始化没做好、channel配错、版本选错,导致后面项目环境全乱套的情况。

咱们从选版开始,一步步来。

2.1 选Miniconda还是Anaconda?

这是我被问到最多的问题。我个人更推荐Miniconda,原因很简单:它是Anaconda的瘦身版,只有conda本体和必要依赖,不预装任何科学计算包。你想想看,一个项目要pandas,另一个项目要tensorflow,Anaconda带的numpy、scipy、matplotlib全成了冗余。

一句话决策:

  • 选Miniconda:你清楚自己需要什么包,想控制磁盘占用,做CI/CD自动化。这是大多数工程场景的选择。
  • 选Anaconda:你刚入门数据科学,不想管依赖,想开箱即用。但我不建议团队协作时用它,包版本太固定,容易锁死。
对比项MinicondaAnaconda
安装包大小~70 MB~700 MB
预装包仅conda + 核心依赖150+ 科学计算包
适用场景工程、CI/CD、容器化教学、个人快速原型
灵活性高(你决定装什么)低(冗余包多)

别听网上说“两者都一样”。我在项目里遇到过一个团队用Anaconda做微服务基础镜像,结果每个镜像都多出600MB,浪费大量存储和拉取时间。换成Miniconda后,构建速度快了3倍。

2.2 安装步骤:Linux/macOS/Windows

我假设你主要是Linux环境,但macOS和Windows的细节我也会提。

Linux / macOS

去官网下载Miniconda安装脚本,或者直接命令行搞定:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

接下来的交互我建议你注意两点:

  1. 不要跳过授权协议——按回车翻到底,输入yes。
  2. 安装路径——默认是~/miniconda3。我习惯就用这个,方便脚本引用。
  3. 是否初始化conda——输入yes。它会修改你的~/.bashrc或~/.zshrc。
小技巧:安装完成后执行source ~/.bashrc让配置生效。然后验证一下:
conda --version
应该看到类似conda 24.11.0的输出。

Windows

Windows上我建议用Miniconda3 Windows x86_64.exe安装包。安装时记得勾选“Add Miniconda3 to my PATH environment variable”,否则你只能在Anaconda Prompt里用conda命令。这个坑我踩过,后来写批处理脚本时找不到conda,折腾了半小时。

装完后打开命令提示符或PowerShell,运行:

conda --version

2.3 配置channels:别让下载变慢

Conda默认的channel是defaults,服务器在国外,国内用户下载包会慢到怀疑人生。为什么要配置channels?因为它决定conda去哪找包、按什么顺序找。

配置核心原则:把最稳定的、最快的channel放在最前面。我平时用这个顺序:

  1. conda-forge——社区维护,包最全,更新最快
  2. defaults——Anaconda官方,稳定性高
  3. bioconda——生物信息学专用,按需添加

配置方式很简单,一行命令搞定:

conda config --add channels conda-forge
conda config --add channels defaults
conda config --set channel_priority strict

channel_priority strict这个参数我强烈建议打开。它告诉conda:如果conda-forge里有这个包,就别去defaults里找了。这样做能避免包版本冲突。我有个项目就吃过这个亏——同一个包从两个channel拉来不同版本,运行时直接报Segment Fault。

配置完后,看看效果:

conda config --show channels
conda config --show channel_priority

输出应该是:

channels:
  - conda-forge
  - defaults
channel_priority: strict

2.4 配置持久化与condarc验证

所有配置都保存在~/.condarc文件里。你可以直接编辑它,效果等同命令行。我有时候用命令行,有时候直接改文件,全看手边哪个方便。

看一下你当前的配置:

conda config --show-sources

一个典型的.condarc内容长这样:

channels:
  - conda-forge
  - defaults
channel_priority: strict
auto_update_conda: true
show_channel_urls: true

show_channel_urls: true是我个人的习惯——安装时能看到包从哪个channel来,方便排查问题。

注意:不要同时配多个国内镜像源作为channel,除非你清楚它们之间的优先级关系。我曾经图方便加了3个镜像源,结果conda解析依赖时在镜像之间反复切换,一个环境创建花了40分钟。

2.5 Mamba:加速安装的利器

Conda的依赖解析慢是出了名的。Mamba是用C++重写的conda解析器,速度快5倍以上。环境越复杂,差异越明显。

安装Mamba:

conda install mamba -c conda-forge

装完后,大部分conda命令可以换成mamba:

mamba install numpy
mamba env create -f environment.yml
mamba list

我把它装进每一个CI流水线。原来用conda装环境要3分钟,换成mamba后40秒搞定。

2.6 常见问题与避坑指南

  • 命令找不到conda——大概率是PATH没配好。检查~/.bashrc里是否有export PATH="$HOME/miniconda3/bin:$PATH"。
  • 包下载慢——优先检查channel配置,其次考虑设置代理conda config --set proxy_servers.http http://your-proxy:port。
  • Conda版本升级后配置丢失——建议把.condarc备份到git仓库。我每个项目都放一份.condarc模板。
  • 权限问题——如果安装在系统目录,用sudo安装。更推荐装在用户目录下,省去权限烦恼。

核心经验总结:

  1. Miniconda是工程标配,Anaconda适合教学
  2. channel配置顺序决定稳定性和速度,优先conda-forge
  3. 一定要开channel_priority strict
  4. Mamba是conda的加速器,必须装
  5. 备份.condarc到代码仓库
Conda安装与配置核心逻辑 Conda安装与配置知识体系 安装Conda Miniconda(推荐) → 工程/CI/容器 Anaconda → 教学/快速原型 配置Channels conda-forge(优先) defaults(稳定) 按需追加(bioconda等) 验证:conda config --show && 安装Mamba