跳转至主要内容

从 Anaconda 的 defaults 频道迁移

希望从 Anaconda 的 defaults 频道(即那些托管在 https://repo.anaconda.com/pkgs 下的频道)迁移的用户应谨慎操作,以免破坏其工作环境。首先要意识到的是,在 2024 年,conda-forge 与 defaults 中提供的软件包不兼容。通常,conda-forge 上的软件包将需要特定软件包的较新版本,或者可能只是以不同的方式组织。作为社区,我们唯一可以支持的工作流程是 conda-forge 频道优先于所有其他频道的工作流程。

如果您之前使用的是 Miniconda 或 Anaconda Distribution,并希望迁移到使用 conda-forge,我们概述了两种工作流程。第一种允许您在不卸载先前安装的情况下尝试 conda-forge 中的软件包,第二种涉及卸载 Miniconda 或 Anaconda Distribution,然后安装 Miniforge。

在隔离环境中尝试 conda-forge

  1. 创建一个依赖项非常少的 conda 环境。以下命令将仅使用来自 conda-forge 的软件包来安装 Python 3.11。您可以根据自己的喜好调整 Python 版本

    conda create --name conda-forge-env python=3 --channel conda-forge --override-channels
  2. 激活您的环境,并将具有严格优先级的 conda-forge 添加到该特定环境

    conda activate conda-forge-env
    conda config --env --add channels conda-forge
    # optional:
    # conda config --env --remove channels defaults
    conda config --env --set channel_priority strict
  3. 检查您的 conda 环境的配置

    conda config --show

    这应报告 conda-forge 是您列表中最顶部的频道。

  4. 现在您可以像这样使用命令

    conda install my_desired_package_from_conda_forge

卸载 Anaconda 并安装 Miniforge

如果您准备好完全切换到 conda-forge,我们建议卸载 Anaconda / Miniconda,然后安装 Miniforge。以下步骤是关于如何执行此操作的指南,同时备份您的工作和环境。

  1. 清理您现有的 conda 安装。这应从您的 Anaconda / Miniconda 安装中删除未使用的文件,并使备份文件更小。

    # The conda build purge command may fail if you don't have conda-build installed.
    # this is expected
    conda build purge
    conda clean --all
  2. 创建您的 conda 安装的 zip 压缩包。使用您喜欢的图形工具右键单击 Anaconda / Miniconda 安装文件夹。通过运行 conda info --envs 检查您是否在安装根目录之外创建了其他环境。如有必要,也备份这些环境。

    • 或者,如果愿意,您也可以导出所有环境的锁定文件

      conda list --explicit --md5 --prefix /path/to/environment-name > environment-name.txt

      请注意,这些锁定文件仅包含 conda 软件包。如果您在上面 pip install 了软件包,则这些软件包将不会被捕获。对于这些用例,请查看 conda-lock

    • 另一个有用的文件是为每个环境创建输入 environment.yml

      conda env export --from-history --prefix --prefix /path/to/environment-name > environment-name.yml

      此文件不会捕获您环境中完全相同的状态。相反,它会告诉 conda 要查找哪些软件包,然后找到满足请求的解决方案。

  3. 在 Windows 上,使用系统控制面板建议的卸载程序。在 Linux 和 macOS 上,您可以删除名为 anaconda3miniconda3 的文件夹(通常位于您的主目录中)。

  4. 在您的主目录中找到名为 .condarc 的文件,并将其备份到安全的地方。然后,删除您的旧 .condarc 文件。当我们安装 Miniforge 时,将创建一个特定于 conda-forge 的新文件。

  5. 在 Linux 和 macOS 上,您的 shell 配置文件 (~/.bashrc) 可能包含来自先前安装的初始化代码。找到由 # >>> conda initialize >>> 注释保护的代码块并将其删除。

  6. Miniforge 下载 页面下载并安装与您的平台匹配的 Miniforge 安装程序。

  7. 安装完成后,您应该能够在 Windows 上使用 Miniforge3 Prompt,或在 Linux 和 macOS 上使用终端,来运行命令

    conda info

请注意,conda-forge 是优先级最高的频道。

您现在应该可以使用 conda-forge 软件包了。

历史注释

直到大约 2021 年,conda-forge 与 Anaconda 的默认频道保持着很强的兼容性。但是,正如 2021 年 9 月宣布的那样,我们决定最终放弃对 Anaconda 的 defaults 软件包的依赖。多年来,这导致 conda-forge 和 Anaconda 的 defaults 频道之间的软件包版本和名称差异越来越大。

在 2024 年,不再支持从 Anaconda 的频道和 conda-forge 共同安装软件包的工作流程。

要检查您是否安装了来自这两个来源的软件包,请使用命令

conda list --show-channel-urls

所有软件包都应指定它们是从 conda-forge 频道安装的。在 2024 年,仍然存在一些错误,其中 conda 软件包会声称它们是从 PyPI 安装的,即使它们实际上是从 conda-forge 安装的。