为 Conda Package Manager 启用 Conda-forge 通道

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

内容

  1. 什么是 conda-forge?
  2. 从 conda-forge 频道安装软件包
  3. 在 Linux 中为 conda 包管理器启用 conda-forge 通道
    1. 1. 从命令行添加 conda-forge 频道
    2. 2. 从 Anaconda Navigator 添加 conda-forge 频道

什么是 conda-forge?

默认情况下, conda 包管理器从 defaults 渠道。 中的所有包 defaults 频道由 Anaconda, Inc. 的 Conda 团队彻底测试和维护。除了官方 defaults 频道,有一些第三方频道可用于托管和管理软件包。 一个这样的频道是 conda-forge. Conda-forge 是社区主导的频道,为各种软件提供最新的 conda 包。

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

Conda-forge 项目得到了 NumFOCUS 的财政支持,NumFOCUS 是一个致力于支持开源科学计算社区的非营利组织。

从 conda-forge 频道安装软件包

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

建议始终从以下位置安装软件包 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

此命令将从以下位置安装 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 来自命令行或 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 channel 并确保所有依赖项都来自 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 通道。

希望这可以帮助。

资源:

  • Conda-forge 网站

Anaconda 发行版CondaConda 频道Conda 命令Conda-forgeLinux