为 Conda 包管理器启用 Conda-forge 通道

本指南解释了什么是 conda-forge 频道,如何安装包 conda-forge 最后如何永久启用 conda-forge 频道 conda 来自命令行的包管理器以及 Linux 中的 Anaconda Navigator GUI。

什么是康达锻造?

默认情况下, conda 包管理器从 defaults 渠道。 中的所有包 defaults Anaconda, Inc. 的 Conda 团队对频道进行了彻底的测试和维护。

除了官方 defaults 渠道,有一些第三方渠道可用于托管和管理包。 一个这样的渠道是 conda-forge.

Conda-forge 是社区主导的频道,为各种软件提供最新的 conda 包。

defaults 频道可能并不总是包含所有包。 可能有一些丢失的包,或者它可能包含过时的包。 这 conda-forge 社区通过在数千名贡献者的帮助下维护最新的软件包来解决这些问题。

Conda-forge 项目由 NumFOCUS 提供资金支持,NumFOCUS 是一个致力于支持开源科学计算社区的非营利组织。

从 conda-forge 频道安装软件包

可以从特定渠道安装软件包,而无需将其添加到我们的系统中。 让我们看看一个 example.

建议始终从以下位置安装软件包 conda-forge 新环境中的频道而不是默认频道 base 环境。

以下命令将创建一个名为 测试应用 并安装 熊猫 连同它在 testapp 环境中的支持包:

$ conda create --channel conda-forge --name testapp pandas

或者,

$ conda create -c conda-forge -n testapp pandas
从 conda-forge 频道安装软件包

这里, -c (--channel) 标志用于明确提及频道名称,即 conda-forge 在我们的例子中。

激活新创建的“testapp”环境:

$ conda activate testapp

检查环境中所有已安装包的来源:

$ conda list
 packages in environment at /home/sk/anaconda3/envs/testapp:
 #
 Name                    Version                   Build  Channel
 _libgcc_mutex             0.1                 conda_forge    conda-forge
 _openmp_mutex             4.5                       1_gnu    conda-forge
 ca-certificates           2020.12.5            ha878542_0    conda-forge
 certifi                   2020.12.5        py39hf3d152e_1    conda-forge
 ld_impl_linux-64          2.35.1               hea4e1c9_2    conda-forge
 libblas                   3.9.0                8_openblas    conda-forge
 libcblas                  3.9.0                8_openblas    conda-forge
 libffi                    3.3                  h58526e2_2    conda-forge
 libgcc-ng                 9.3.0               h2828fa1_18    conda-forge
 libgfortran-ng            9.3.0               hff62375_18    conda-forge
 libgfortran5              9.3.0               hff62375_18    conda-forge
 libgomp                   9.3.0               h2828fa1_18    conda-forge
 liblapack                 3.9.0                8_openblas    conda-forge
 libopenblas               0.3.12          pthreads_h4812303_1    conda-forge
 libstdcxx-ng              9.3.0               h6de172a_18    conda-forge
 ncurses                   6.2                  h58526e2_4    conda-forge
 numpy                     1.20.1           py39hdbf815f_0    conda-forge
 openssl                   1.1.1j               h7f98852_0    conda-forge
 pandas                    1.2.2            py39hde0f152_0    conda-forge
 pip                       21.0.1             pyhd8ed1ab_0    conda-forge
 python                    3.9.1           hffdb5ce_5_cpython    conda-forge
 python-dateutil           2.8.1                      py_0    conda-forge
 python_abi                3.9                      1_cp39    conda-forge
 pytz                      2021.1             pyhd8ed1ab_0    conda-forge
 readline                  8.0                  he28a2e2_2    conda-forge
 setuptools                49.6.0           py39hf3d152e_3    conda-forge
 six                       1.15.0             pyh9f0ad1d_0    conda-forge
 sqlite                    3.34.0               h74cdb3f_0    conda-forge
 tk                        8.6.10               h21135ba_1    conda-forge
 tzdata                    2021a                he74cb21_0    conda-forge
 wheel                     0.36.2             pyhd3deb0d_0    conda-forge
 xz                        5.2.5                h516909a_1    conda-forge
 zlib                      1.2.11            h516909a_1010    conda-forge
列出 conda 环境中已安装的软件包

正如你在上面的输出中看到的,所有的包都是从 conda-forge 存储库。

如果您不想创建新环境但在现有活动环境中安装软件包,请运行:

$ conda install --channel conda-forge pandas

此命令将从 conda-forge 现有环境中的渠道。

让我们验证一下 conda-forge 使用以下方法之一添加频道:

$ conda info

此命令显示当前活动 conda 环境的详细信息,包括通道。

[...]
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
[...]

如果您只想显示频道,请使用以下命令:

$ conda config --show channels

样本输出:

channels:
  - defaults

要仅显示默认频道,请运行:

$ conda config --show default_channels

样本输出:

default_channels:
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
在 conda 环境中显示活动频道在 conda 环境中显示活动频道

正如您在上面的输出中看到的, conda-forge 不添加。 我们只安装了来自 conda-forge 频道,但我们还没有添加它。

现在让我们继续添加或启用 conda-forge 永久频道。

在 Linux 中为 conda 包管理器启用 conda-forge 通道

如前所述,我们可以添加或启用 conda-forge 来自 commadline 或 Anaconda Navigator 图形用户界面的频道。 首先,我们将看到命令行方式。

1. 从命令行添加 conda-forge 频道

启用 conda-forge 频道,从终端运行以下命令:

$ conda config --add channels conda-forge

如前所述, conda 从安装包 defaults 频道,除非您明确告诉它从特定频道安装软件包。

始终从以下位置安装软件包 conda-forge设置更高的优先级 conda-forge 频道使用命令:

$ conda config --set channel_priority strict

在这里, channel_priority strict 选项将放置 conda-forge 顶部的通道 defaults 通道并确保所有依赖项都来自 conda-forge 频道,除非它们仅存在于 defaults.

检查是否 conda-forge 使用命令添加频道:

$ conda config --show channels
channels:
  - conda-forge
  - defaults

你注意到了吗? conda-forge 被放置在顶部 defaults 渠道。

现在,您通常可以在您的环境中安装任何软件包,而无需明确提及通道,如下所示:

$ conda install pandas

该软件包将始终从 conda-forge 渠道。

在 Linux 中从 conda-forge 安装软件包在 Linux 中从 conda-forge 安装软件包

以防万一,如果包或其依赖项在 conda-forge,它们将从 defaults 渠道。

就像我已经提到的,建议始终在新环境而不是默认环境中安装包 base 环境。 这样您就可以避免包装冲突并保持清洁 base 环境。

通过命令行添加频道并不是什么大问题。 但是,你们中的一些人更喜欢以图形方式完成工作。 以下部分说明如何启用 conda-forge 来自 Anaconda Navigator GUI 的频道。

2. 从 Anaconda Navigator 添加 conda-forge 频道

发射 蟒蛇导航器 使用命令:

$ anaconda-navigator

点击频道按钮:

在 Anaconda Navigator GUI 中单击 Channels 按钮在 Anaconda Navigator GUI 中单击 Channels 按钮

点击添加按钮:

单击添加以添加新频道单击添加以添加新频道

Enter 这 conda-forge 频道网址 – https://conda.anaconda.org/conda-forge/. 按 ENTER 键更新频道列表。

Enter  conda-forge 频道 URLEnter conda-forge 频道 URL

最后点击 更新频道 按钮以启用 conda-forge 通道。

资源: