Conda与Mamba简明教程

系列标签: 技术文档 · Conda · Python环境 · myenv

在 Python 科研里,项目 A 要 NumPy 1.x,项目 B 要 NumPy 2.x——全塞进系统自带的 Python,很容易「装一个坏一个」。CondaMamba 就是帮你给每个项目单独隔一间 「Python 小房间」(虚拟环境),互不打架。

本文讲 Conda / Mamba 怎么装、怎么建环境、怎么装包。分子模拟的一键环境 myenv分子模拟工作平台搭建(该文统一用 conda);本文侧重日常环境管理本身。

Mac 注意: 部分 Mac(尤其 Apple Silicon) 上 Mamba / micromamba 与 conda-forge 组合偶发求解失败、环境损坏或和系统库冲突。本站在 Mac 上推荐只用 conda,不必再装 Mamba。Linux / 集群上若你更熟 Mamba,仍可按下文把 conda 换成 mamba(语法大多相同)。

conda_mamba


一、核心概念:为什么要用虚拟环境?

概念 含义
虚拟环境 (Environment) 一个独立的「Python 小房间」,有自己的 Python 版本和包
base 环境 Conda 安装后自带的默认环境,不建议在 base 里装项目依赖
激活 (activate) 进入某个环境,此后 pythonpip 命令都指向该环境
通道 (Channel) 软件包的下载源,如 conda-forge、官方 defaults
environment.yml 环境配置文件,可一键复现整套依赖

典型场景:

  • 项目 A 用 Python 3.10 + NumPy 1.x
  • 项目 B 用 Python 3.12 + NumPy 2.x
    → 各建一个环境,切换即可,不必来回卸载重装。

二、Conda 与 Mamba 是什么关系?

可以这么记:Conda 是管家,Mamba 是同一个管家的「快跑模式」——命令几乎一样,但创建环境、装包时 Mamba 往往更快。

工具 含义
Conda 包与环境管理器,功能全;解析依赖时偶尔较慢;Mac 上本站首选
Mamba Conda 的加速版,命令与 Conda 兼容Linux / 集群可用,Mac 不推荐
Miniconda 精简版安装器(不带一大堆预装包),日常推荐
Miniforge 类似 Miniconda,默认走 conda-forge 源,开源社区常用
pip Python 官方装包工具;Conda 环境里也能用,但优先用 conda/mamba 装能装到的包

推荐组合(按平台):

平台 推荐
Mac Miniconda + 只用 conda(创建 / 装包 / 导出都用 conda;不要为了加速再装 Mamba)
Ubuntu / Linux / WSL / 集群 Miniconda(或 Miniforge);可用 Mamba 加速,或全程 conda

后文示例命令以 mamba 写出(Linux 上更快);在 Mac 上请一律改成 conda(例如 mamba installconda install)。激活环境始终用 conda activate


三、各平台安装

1. Mac

方式一:Miniconda(官方)

  1. 打开 Miniconda 安装页,下载 macOS 安装包(Apple Silicon 选 arm64,Intel 选 x86_64)
  2. 按向导安装,或终端执行(以 arm64 为例,版本号以官网为准):
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
bash Miniconda3-latest-MacOSX-arm64.sh
  1. 安装结束后重新打开终端,验证:
conda --version

方式二:Homebrew

brew install --cask miniconda
conda init zsh   # 若使用 Zsh(Mac 默认)

装好后用 conda --version 验证即可。Mac 上到此为止,无需再 conda install mamba 平台一键环境见 分子模拟工作平台搭建conda env create -f myenv.yml)。

2. Ubuntu / Linux

# 下载(Linux x86_64 示例,其他架构见官网)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 按提示安装,完成后重新打开终端
conda --version

Miniforge 替代方案(默认 conda-forge):

curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh

3. Windows

  1. Miniconda 官网 下载 .exe 安装包
  2. 安装时建议勾选 「Add Miniconda3 to my PATH environment variable」(或安装后用「Anaconda Prompt」)
  3. 打开 Anaconda PromptGit BashWSL,验证:
conda --version

Tips: 分子模拟用户若已配置 WSL,建议在 WSL 内安装 Miniconda,与 Linux 教程一致。参见 WSL2安装与配置分子模拟工作平台搭建


四、安装后初始化

1. 让终端识别 conda 命令

安装程序通常会问是否运行 conda init;若未执行,手动运行:

conda init zsh         # Mac / Ubuntu(Zsh)
conda init bash        # Ubuntu(Bash)
conda init powershell  # Windows PowerShell

然后关掉终端再打开(或执行 source ~/.zshrc)。若提示符前出现 (base),说明 conda 已生效。

2. 安装 Mamba(可选;Linux 可加速,Mac 请跳过)

base 环境不要堆项目包。若你在 Linux / 集群上想加速求解,可在 base 里装一次 Mamba:

conda install mamba -n base -c conda-forge
mamba --version

Mac:跳过本步。本站实测 / 反馈中,Mamba 在部分 Apple Silicon Mac 上兼容性不如纯 conda 稳(求解失败、环境异常等)。直接用 conda create / conda install 即可;稍慢可接受。详见上文第二节与 分子模拟工作平台搭建

3. 可选:加快 conda-forge 访问

国内用户可配置镜像(以清华镜像为例,按需选用):

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

五、环境管理:最常用的命令

日常就记这一套:建环境 → 激活 → 装包 → 用完退出

1. 创建环境

# 指定 Python 版本创建名为 myproject 的环境
mamba create -n myproject python=3.12 -y

# 创建时直接安装常用包
mamba create -n dataanalysis python=3.11 numpy pandas matplotlib -y

-n 表示环境名称(name);-y 表示自动确认,跳过交互提示。

2. 激活与退出

conda activate myproject    # 进入环境(提示符前会出现环境名)
conda deactivate            # 退出当前环境,回到 base

注意: 激活 / 退出统一用 conda activate / conda deactivate,即使用 Mamba 安装包也是如此。

3. 查看环境列表

mamba env list
# 或
conda env list

* 的为当前激活的环境;base 为默认环境。

4. 删除环境

mamba env remove -n myproject

5. 克隆环境(复制一份)

mamba create -n myproject-copy --clone myproject

六、安装与管理软件包

进入目标环境后再安装:

conda activate myproject

1. 用 conda / mamba 安装(首选)

Mac 用 conda;Linux 可用 mamba(更快)或同样用 conda

conda install numpy scipy matplotlib          # Mac 推荐;Linux 也可用
# mamba install numpy scipy matplotlib        # 仅 Linux / 集群可选
conda install -c conda-forge rdkit            # 指定通道

2. 用 pip 安装(mamba 里没有的包)

Conda 环境里可以混用 pip,但建议先 mamba 后 pip,且装完不要再对该环境大量 mamba install,以免依赖冲突:

pip install some-pypi-only-package

3. 查看已安装的包

mamba list
# 或查看某个包
mamba list numpy

4. 更新 / 卸载包

mamba update numpy          # 更新单个包
mamba update --all          # 更新环境中所有包(慎用,可能牵动依赖)
mamba remove numpy          # 卸载包

5. 搜索包

mamba search mdanalysis

七、导出与复现环境(environment.yml)

团队协作或换机器时,用配置文件一键复现环境。

1. 从当前环境导出

conda activate myproject
mamba env export > environment.yml

精简版(只保留你手动安装过的包,体积更小):

mamba env export --from-history > environment.yml

2. 从 yml 文件创建环境

mamba env create -f environment.yml
conda activate myproject   # 名称以 yml 里 name: 字段为准

3. yml 文件长什么样?

name: myproject
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.12
  - numpy
  - pandas
  - pip
  - pip:
      - some-pypi-package

分子模拟预置环境可直接使用 分子模拟工作平台搭建 中的 myenv.yml 一键部署。

4. 更新已有环境

修改 environment.yml 后:

mamba env update -n myproject -f environment.yml --prune

--prune 会移除 yml 中不再列出的包。


八、通道 (Channel) 是什么?

通道就是「去哪个仓库下载安装包」。装不上、版本不对时,常和通道有关。

通道 含义
defaults Anaconda 官方默认仓库
conda-forge 社区维护,包全、更新快,科研用户首选
bioconda 生物信息学相关包

临时指定通道:

mamba install -c conda-forge packmol

永久添加(写入配置):

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

九、在 VSCode / Cursor 与 Jupyter 中使用

1. 选择 Python 解释器

  1. Command/Ctrl + Shift + P → 输入 Python: Select Interpreter
  2. 选择对应 Conda 环境,路径通常含 envs/环境名/bin/python

2. Jupyter Notebook / JupyterLab

conda activate myproject
mamba install jupyterlab ipykernel
python -m ipykernel install --user --name myproject --display-name "Python (myproject)"

之后在 VSCode / Cursor 或 JupyterLab 的 Kernel 列表里选择 Python (myproject) 即可。

3. 终端里确认当前环境

which python      # Mac / Linux
where python      # Windows
python --version

路径应指向 .../envs/环境名/...,而不是系统 Python。


十、常见问题与最佳实践

1. 不要滥用 base 环境

base 只用来管理 Conda/Mamba 本身。每个项目单独建环境,避免把所有包装在一起。

2. conda activate 报错:command not found

运行 conda init <你的shell> 后重开终端;WSL / 远程集群需在对应终端里初始化。

3. 环境激活后 VSCode 仍用错 Python

手动 Python: Select Interpreter 选一次;或在项目根目录建 .vscode/settings.json

{
  "python.defaultInterpreterPath": "~/miniconda3/envs/myproject/bin/python"
}

路径按实际安装位置修改。

4. Solving environment 很慢或失败

  • Mac:conda,不要改装 Mamba「提速」;可配国内镜像(见第四节),求解久属正常
  • Linux: 可用 mamba 代替 conda install 加速
  • 尽量在新环境里安装,而不是往旧环境里硬塞
  • 指定版本范围,减少求解空间:python=3.12numpy>=1.26,<2
  • 冲突严重时,新建环境往往比修复旧环境更省时

5. mamba 与 pip 混用原则

  1. mamba install 能装的
  2. 再用 pip install 补 PyPI 独有的包
  3. 同一环境里避免反复交替大量安装

6. 清理磁盘空间

mamba clean --all        # 清理下载缓存与索引
mamba env remove -n 旧环境名

7. 开机自动进入某环境(可选)

~/.zshrc~/.bashrc 末尾添加:

conda activate myenv

仅当你几乎只用一个环境时推荐;多项目用户建议每次手动切换。


十一、命令速查表

下表以 mamba 为例;Mac 把 mamba 全部换成 conda 即可

你想做的事 命令
创建环境 mamba create -n 环境名 python=3.12 -y
激活环境 conda activate 环境名
退出环境 conda deactivate
查看所有环境 mamba env list
删除环境 mamba env remove -n 环境名
安装包 mamba install 包名
卸载包 mamba remove 包名
查看已装包 mamba list
导出环境 mamba env export > environment.yml
从 yml 创建 mamba env create -f environment.yml
更新环境 mamba env update -n 环境名 -f environment.yml
清理缓存 mamba clean --all

十二、推荐学习资源


十三、小结

  1. 一个项目一个环境,尽量别在 base 里堆包。
  2. Mac:只用 Conda(别装 Mamba);Linux:可用 Miniconda + Mamba 加速,或全程 conda。
  3. 日常三板斧createconda activateinstall(Mac 全程 conda;Linux 可用 mamba 装包)。
  4. 复现与分享environment.yml 是团队协作的标配。
  5. 编辑器:在 VSCode / Cursor 里选对解释器和 Jupyter Kernel,避免「终端对了、Notebook 错了」。

掌握以上内容,就足以应对日常 Python 科研开发中的环境管理需求;分子模拟方向的完整依赖清单与一键部署(统一 conda),请继续参考本站分子模拟工作平台搭建 教程。Solving environment 卡住或报错时,把终端完整输出复制去搜,往往能找到具体解决办法。


学习路径

前置阅读:

下一步: