下面把 conda 常用命令与最佳实践一次讲清:环境与包管理、通道与配置、导入导出、复现回滚、加速与清理、排错。你可以把这当“conda 作业手册”。


1) 安装与初始化

# 检查版本与基本信息
conda --version
conda info -a          # 所有关键信息(平台、缓存、通道、配置)
# 初始化 shell(首次安装后)
conda init bash        # 可选:zsh/fish/powershell/cmd.exe
# 关闭自动激活 base(推荐)
conda config --set auto_activate_base false

2) 环境(env)管理

创建 / 激活 / 删除

# 创建名为 py312 的环境,并指定 Python 版本
conda create -n py312 python=3.12

# 激活/退出
conda activate py312
conda deactivate

# 列出环境
conda env list         # 或 conda info --envs

# 删除整个环境
conda remove -n py312 --all

在未激活的情况下运行命令

# 不切换当前 shell,直接在特定环境里跑命令
conda run -n py312 python -c "import sys; print(sys.version)"

环境变量(写入某个环境)

# 设置/查看/移除 环境专属变量(激活该环境时注入)
conda env config vars set API_URL=https://example.com -n py312
conda env config vars list -n py312
conda env config vars unset API_URL -n py312

3) 包(package)管理

搜索与安装/卸载/升级

# 搜索包(支持通配/版本)
conda search numpy
conda search "numpy>=1.26,<2"

# 安装到当前环境
conda install numpy pandas

# 指定版本/通道安装
conda install numpy=1.26 -c conda-forge

# 升级某包或升级全部包(谨慎)
conda update numpy
conda update --all

# 卸载
conda remove numpy

查看环境中的包

conda list                 # 列出已装包
conda list numpy           # 查看指定包的详情
conda list --revisions     # 查看该环境历史变更
conda install --revision 5 # 回滚到第 5 次修订(秒级恢复)

4) 通道(channels)与优先级

通道决定包下载的来源;常见有 defaultsconda-forge

# 添加/移除通道(全局配置)
conda config --add channels conda-forge
conda config --remove channels conda-forge

# 查看配置与通道来源
conda config --show
conda config --show-sources

# 严格通道优先级(强烈推荐,避免混源导致解析冲突)
conda config --set channel_priority strict

经验法则:尽量单一通道(如全用 conda-forge),或在环境层面固定通道;避免在一个环境里频繁混用不同源。


5) 环境导出、复现与团队协作

environment.yml(推荐做法)

# 导出:包含平台无关的依赖(常用)
conda env export --no-builds -n py312 > environment.yml

# 只导出“你显式安装的顶层依赖”(更精炼,便于长期维护)
conda env export --from-history -n py312 > environment.yml

# 从文件创建/更新环境
conda env create -f environment.yml        # 新建
conda env update -f environment.yml --prune  # 对已有环境差异应用,--prune 会移除多余包

精确复现(spec 文件)

# 生成“显式”规范(精确到构建号与平台)
conda list --explicit > spec-file.txt

# 根据 spec 复刻(跨机器 1:1 还原)
conda create -n cloned --file spec-file.txt

6) 加速解析与下载

  • libmamba 求解器(大幅加速依赖解析):

    # 安装并切换到 libmamba 求解器(一次配置)
    conda install -n base conda-libmamba-solver
    conda config --set solver libmamba
    
  • mamba:与 conda 命令兼容的替代实现,速度更快(若已安装):

    mamba create -n py312 python=3.12
    mamba install numpy
    
  • 本地缓存/镜像:企业内建议配置私有镜像或本地代理,加快下载并可控。


7) 清理空间

# 清理索引缓存、包缓存、未使用的包与临时文件
conda clean --all
# 更细粒度:
conda clean --packages
conda clean --tarballs
conda clean --index-cache

8) 与 pip 协作(在 conda 环境中用 pip)

conda activate py312
# 先用 conda 安装能用到的包,再用 pip 补充 conda 没有的
conda install pip
pip install some-package-not-on-conda

建议:同一环境里尽量先 conda 后 pip,并尽量不要跨通道和跨工具重复安装同一个包;确需混用时固定通道、锁版本,减少解析冲突。


9) 常见问题速排

  1. 激活失败 / 命令找不到

    • 运行 conda init <你的shell> 后重启终端;或使用完整路径 ~/miniconda3/bin/conda
  2. 解析很慢 / 冲突

    • 开启 libmamba 求解器;固定通道并启 channel_priority strict;放宽不必要的版本上界。
  3. 包装不上 / 找不到版本

    • conda search -c conda-forge <pkg> 查可用版本;或换通道;或用 pip 兜底。
  4. 环境损坏/装错版本

    • conda list --revisionsconda install --revision N 回滚。
  5. 空间占用过大

    • conda clean --all 清缓存;定期删老环境 conda remove -n <env> --all
  6. Windows PowerShell 激活脚本被禁

    • 以管理员身份执行一次:

      Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
      

10) 管理命令速查(Cheat Sheet)

环境:

conda create -n NAME python=3.12      # 创建环境
conda activate NAME                   # 激活
conda deactivate                      # 退出
conda env list                        # 列环境
conda remove -n NAME --all            # 删除环境
conda run -n NAME <cmd>               # 在环境中执行命令
conda list --revisions                # 查看修订并可回滚

包:

conda search PKG                      # 搜索
conda install PKG[=VER]               # 安装
conda update PKG | conda update --all # 升级
conda remove PKG                      # 卸载
conda list [PKG]                      # 列出包

通道与配置:

conda config --add channels conda-forge
conda config --set channel_priority strict
conda config --show
conda info -a

导出/复现:

conda env export --no-builds > environment.yml
conda env export --from-history > environment.yml
conda env create -f environment.yml
conda env update -f environment.yml --prune
conda list --explicit > spec.txt
conda create -n NEW --file spec.txt

清理与修复:

conda clean --all
conda install --revision N

11) 团队与 CI 的落地建议

  • 固定通道(比如全局使用 conda-forge)并启用 strict 优先级。
  • 生成 environment.yml 并提交到版本库;部署用 conda env create/update
  • 大仓/多项目:采用每项目一个环境;CI 缓存 ~/.conda~/.conda/pkgs
  • 解析加速:启 libmamba;或直接用 mamba 在 CI 中安装。
  • 结合 pip 时,conda 优先pip 仅补充缺失包;必要时在 environment.yml- pip: 段列出。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐