简而言之,根据我的经验,使用哪一个并不重要。
长答案:
So conda-forge
是可以安装软件包的附加渠道。从这个意义上说,它并不比默认频道或人们发布包的其他数百(数千?)频道更特别。如果您在以下地址注册,则可以添加自己的频道https://anaconda.org并上传您自己的 Conda 包。
在这里,我们需要做出区分,我认为您从问题的措辞中并不清楚,conda
,跨平台包管理器,以及conda-forge
,套餐频道。 Anaconda Inc.(以前称为 Continuum IO),该软件的主要开发商conda
软件,还维护一个单独的软件包通道,这是您键入时的默认设置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
最高优先级。优先级决定 (in part) 当多个频道具有特定套餐时选择哪个频道。要将通道添加到列表末尾并赋予其最低优先级,请键入
conda config --append channels some-channel
如果您想删除添加的频道,可以通过编写
conda config --remove channels some-channel
See
conda config -h
以获得更多选择。
综上所述,有四个主要原因使用conda-forge
通道而不是defaults
Anaconda 维护的频道:
- 套餐于
conda-forge
may比上面的内容更新defaults
channel
- 上面有包
conda-forge
无法使用的频道defaults
- 您更喜欢使用依赖项,例如
openblas
(from conda-forge
) 代替mkl
(from defaults
).
- 如果您正在安装需要编译库的包(例如,C 扩展或 C 库的包装器),则它may由于基本 C 库的二进制兼容性,如果您从单个通道在环境中安装所有软件包,则可以减少不兼容的可能性(但此建议将来可能会过时/更改)。作为参考,请参阅Conda Forge 关于混合通道的帖子.