简短的答案是,根据我的经验,通常使用哪个都无关紧要。
长答案:
所以
conda-forge是可以从其中安装的软件包的附加通道。从这个意义上讲,它没有比默认渠道更特别,也没有任何其他人将软件包发布到的渠道(数千个)。如果您在https://anaconda.org上注册并上传自己的Conda软件包,则可以添加自己的频道。
在这里,我们需要进行区分,我认为您在问题的措辞中不清楚
conda,在跨平台的程序包管理器和
conda-forge程序包通道之间。该
conda软件的主要开发人员Anaconda Inc.(以前称为Continuum
IO)也维护一个单独的软件包频道,这是您键入
conda install packagename而不更改任何选项的默认软件包。
可以通过三种方式更改频道选项。每次您安装软件包时,前两个步骤都会完成,最后一个是持久性的。第一个是在每次安装软件包时指定一个通道:
conda install -c some-channel packagename
当然,该程序包必须存在于该通道上。这样将从进行安装
packagename及其所有依赖项
some-channel。或者,您可以指定:
conda install some-channel::packagename
该软件包仍必须存在
some-channel,但现在只能
packagename从中提取
some-channel。可以从您的默认频道列表中搜索满足依赖关系所需的任何其他软件包。
要查看您的频道配置,您可以编写:
conda config --show channels
您可以使用来控制搜索频道的顺序
conda config。你可以写:
conda config --add channels some-channel
将通道添加
some-channel到
channels配置列表的顶部。这具有
some-channel最高的优先级。当一个以上通道具有特定程序包时,优先级(部分)确定选择哪个通道。要将频道添加到列表的末尾并赋予其最低的优先级,请键入
conda config --append channels some-channel
如果您想删除添加的频道,可以通过以下方式删除
conda config --remove channels some-channel
看到
conda config -h
有关更多选项。
综上所述,使用
conda-forge频道而不是
defaultsAnaconda维护频道的主要原因有四个:
- 上的软件包
conda-forge
可能 比defaults
频道上的软件包最新 conda-forge
频道上的某些软件包无法从defaults
- 您可能更喜欢使用
openblas
(fromconda-forge
)之类的依赖项,而不是mkl
(fromdefaults
)。 - 如果要安装需要编译库的软件包(例如,C扩展名或C库的包装器),则由于二进制原因,如果从单个通道在环境中安装所有软件包,则 可能会 减少不兼容的机会基本C库的兼容性(但此建议可能会过时/将来会更改)。



