1. Conda 基础:Conda 是什么?Anaconda 与 Miniconda 的区别与选择

今天聊一个几乎所有数据科学和生物信息从业者都会遇到的问题:环境配置。说白了,就是一堆软件、库、依赖项挤在一起,你装这个版本它要那个版本,升级一个把另一个搞崩了。我刚开始做生物信息分析那会儿,装个单细胞测序工具链,整整折腾了两天,最后重装了系统。后来遇到 Conda,才算是彻底解放了。

1.1 Conda 是什么?

Conda 是一个开源的包管理系统和环境管理系统。简单说,它帮你做两件事:装软件包,以及管理互不干扰的独立运行环境。

你可能会问:我直接用 pip 不也能装包吗?为什么还要 Conda?
这个问题我当初也问过。两者的定位不同。——pip 是 Python 专属的包管理器,它只管 Python 包;而 Conda 是语言无关的环境管理工具,它不仅能装 Python 包,还能装 R 包、C/C++ 库、甚至整个工具链(比如 Visium 数据分析需要的各种二进制工具)。你觉得,哪个更适合做全栈分析环境管理?显然是 Conda。

Conda 的核心能力

  • 环境隔离:每个环境有独立的 Python 版本、库版本、系统依赖,互不污染
  • 跨语言支持:Python、R、Ruby、Lua、C、C++……
  • 非管理员安装:不需要 root 权限,普通用户就能装
  • 多版本并存:同一个系统上可以同时跑 Python 2.7 和 Python 3.10 的环境
  • 二进制分发:预编译好的二进制包,免去编译烦恼

我个人建议,做生物信息分析尤其是空间转录组(Visium)这类工具链比较复杂的工作时,优先选 Conda。很多底层依赖(比如 spapa、libtiff)用 pip 装起来真的很痛苦。

1.2 Anaconda vs Miniconda:有什么区别?

每次我讲这个,总有人问:“我到底该装哪个?”
先看张表,你心里就有数了。

特性 Anaconda Miniconda
包管理 自带 1500+ 预装包 仅 conda + python + 必要依赖
安装包大小 约 3-5 GB 约 50-100 MB
安装时间 较慢(解压大量包) 极快(1-2 分钟)
适用人群 数据分析新手、想开箱即用的人 经验丰富的开发者、需要自定义环境的用户
灵活性 较低(太多预装包容易冲突) 较高(按需安装,干净可控)
磁盘占用 大 极小

我的建议是:大多数情况下选 Miniconda。

原因很简单——你不需要那些预装包。
以 Visium 工具链为例,你真正需要的无非是 space ranger、spaceranger、seurat、scanpy 等几个核心工具,外加一些数据处理库。Anaconda 给你塞了一堆你永远用不上的包(比如 Dask、NetworkX、JupyterLab 全套),白白浪费磁盘和网络资源。更重要的是,预装包越多,解依赖时冲突的概率就越大。

一个小经验

我以前有个学生,直接装了 Anaconda 开始做 Visium 分析。做到一半发现自己的环境跟教程的环境不一致,找不到为什么。后来我让他重装 Miniconda,只装了教程里要求的几个包,问题立刻解决了。干净的环境,是调试的第一前提。

1.3 我该选哪个?一张流程图帮你决定

下面这张图总结了我个人的选择逻辑。你可以根据自己情况快速判断。

选择 Anaconda 还是 Miniconda? 开始选型 你的经验程度? 新手 有经验 新手?选 Anaconda 需要开箱即用 且不介意大安装包 有经验?选 Miniconda 追求干净可控 按需安装,避免冲突 安装包 ~3-5G,开箱好用 安装包 ~50M,灵活干净 无论选哪个,核心环境管理能力相同 第1次安装建议Miniconda,后面不满意也能加装包

1.4 安装流程(极简版)

我假设你决定用 Miniconda。这里有个标准安装流程,我也遇到过一些坑,一并写下来。

  1. 下载安装包
    去官方地址下载对应系统的 Miniconda3 最新版。
    Linux 用户选 .sh 文件,Windows 用户选 .exe,macOS 用户注意芯片类型(Intel vs Apple Silicon)。
  2. 执行安装
    Linux/macOS 终端执行:
    bash Miniconda3-latest-Linux-x86_64.sh
    一直回车,最后输入 yes 接受协议,再输入 yes 确认初始化环境变量。
  3. 验证安装
    新终端窗口运行:
    conda --version
    如果能正常输出版本号(比如 conda 24.1.0),就说明装好了。
  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 --set show_channel_urls yes

常见问题

  • 安装后找不到 conda 命令?——检查是否执行了 source ~/.bashrc(Linux/macOS)或重启终端。
  • 镜像源配置后提示 404?——检查 URL 是否正确,部分镜像源可能会更新路径。
  • 我曾经在一次服务器部署中,因为没配置镜像源,下载了个 600MB 的包花了 40 分钟……换成镜像后 2 分钟搞定。

1.5 你需要记住的三个基础命令

在进入 Visium 实战之前,这三条命令能帮你处理 90% 的日常操作。

  • 创建环境:conda create -n 环境名称 python=3.10
    注意:给环境起个好记的名字,比如 visium_env,别叫 test 或 new 这种容易弄混的名字。
  • 激活环境:conda activate 环境名称
    激活后你的命令行最前面会出现 (环境名称),代表你当前在这个环境里。
  • 安装包:conda install 包名
    或者指定渠道:conda install -c bioconda spaceranger

一个小提醒

我习惯在创建环境时直接指定 Python 版本,比如 python=3.10。这样能避免后面因为版本不匹配而出现奇怪的问题。Visium 的工具链目前对 Python 3.8-3.10 兼容性最好,不建议用 3.11 以上。