Answers:
简短的回答是,根据我的经验,通常使用哪种都无关紧要。
长答案:
所以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
频道而不是defaults
Anaconda维护频道的主要原因有四个:
conda-forge
可能比defaults
频道上的软件包最新conda-forge
频道上的某些软件包无法从defaults
openblas
(from conda-forge
)而不是mkl
(from defaults
)的依赖项。conda install -c some-channel packagename
命令的编写方式可能会更容易
mkl
快过openblas
?
在conda-forge渠道中,您可以找到针对conda构建的软件包,但尚未成为Anaconda官方发行版的一部分。
通常,您可以使用其中任何一个。
有些Python库无法简单安装,conda install
因为除非应用conda-forge,否则它们的通道不可用。根据我的经验,与conda相比,pip更通用于研究不同的渠道来源。例如,如果要安装python-constraint
,可以通过,pip install
但可以通过** cond **进行安装。您必须指定频道- conda-forge
。
conda install -c conda-forge python-constraint // works
但不是
conda install python-constraint
conda update --all
不会更新pip安装的软件包
conda
是一个程序包管理器,conda-forge
是一个渠道。当问这个问题时也许是真的吗?