Conda并且conda-forge都是 Python 包管理器。当两个存储库中都存在一个包时,什么是合适的选择?例如,Django 可以安装其中任何一个,但两者之间的区别在于几个依赖项(conda-forge 有更多)。没有对这些差异的解释,甚至没有一个简单的 README。
Conda
conda-forge
应该使用哪一个?康达还是康达锻造?有关系吗?
简短的回答是,根据我的一般经验,你使用哪个并不重要。
长答案:
conda- forge可以从中安装软件包的附加渠道也是如此。从这个意义上说,它并不比默认频道或人们发布包裹的其他数百个(数千个?)频道中的任何一个更特别。如果您在https://anaconda.org注册并上传您自己的 Conda 包,则可以添加自己的频道。
conda- forge
conda在这里,我们需要区分跨平台包管理器和conda-forge包通道之间的区别,我认为您在问题中的措辞并不清楚。该软件的主要开发商 Anaconda Inc.(前身为 Continuum IO)也维护一个单独的包通道,这是您在不更改任何选项conda的情况下键入时的默认设置。conda install packagename
conda
conda install packagename
可以通过三种方式更改频道选项。前两个在您每次安装软件包时完成,最后一个是持久的。第一个是每次安装包时指定一个频道:
conda install -c some-channel packagename
当然,该包必须存在于该频道上。这种方式将安装packagename及其所有依赖项来自some-channel. 或者,您可以指定:
packagename
some-channel
conda install some-channel::packagename
该包仍然必须存在于 上some-channel,但现在,只会packagename从 中拉出some- channel。将从您的默认频道列表中搜索满足依赖关系所需的任何其他包。
some- channel
要查看您的频道配置,您可以编写:
conda config --show channels
您可以控制搜索频道的顺序conda config。你可以写:
conda config
conda config --add channels some-channel
将频道添加到配置列表some-channel的顶部。channels这给出some- channel了最高优先级。优先级确定(部分)当多个频道具有特定包时选择哪个频道。要将频道添加到列表末尾并为其赋予最低优先级,请键入
channels
conda config --append channels some-channel
如果你想删除你添加的频道,你可以写
conda config --remove channels some-channel
看
conda config -h
更多选择。
conda-forge综上所述,使用通道而不是defaultsAnaconda 维护的通道有四个主要原因:
defaults
openblas
mkl