Conda
和conda-forge
都是Python包管理器。当两个存储库中都存在包时,适当的选择是什么?例如,Django可以安装任何一个,但两者之间的差异是几个依赖(conda-forge有更多)。这些差异没有解释,甚至没有简单的自述文件。
应该使用哪一个? Conda还是conda-forge?这有关系吗?
答案 0 :(得分:129)
简短的回答是,根据我的经验,一般来说,使用哪个都无关紧要。
答案很长:
因此conda-forge
是可以安装软件包的附加渠道。从这个意义上说,它不比默认频道或人们发布包的其他数百(数千?)频道中的任何频道更特殊。如果您在https://anaconda.org注册并上传自己的Conda套餐,则可以添加自己的频道。
我们需要在conda
,跨平台软件包管理器和conda-forge
之间进行区分,我认为您在问题中的措辞并不明确。渠道。 Anaconda Inc.(以前称为Continuum IO)是conda
软件的主要开发人员,它还维护一个单独的软件包通道,当您在不更改任何选项的情况下键入conda install packagename
时,这是默认软件包。
有两种方法可以更改频道的选项。一种是每次安装软件包时指定一个通道:
conda install -c some-channel packagename
当然,包必须存在于该频道上。如果您经常使用相同的频道,则可能需要将其添加到配置中。你可以写
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
见
conda config -h
了解更多选择。
综上所述,使用conda-forge
频道而不是Anaconda维护的defaults
频道有四个主要原因:
conda-forge
上的软件包可能比defaults
渠道上的软件更新conda-forge
频道上有defaults
openblas
(来自conda-forge
)而非mkl
(来自defaults
)之类的依赖项。答案 1 :(得分:9)
Anaconda已更改其Terms of Service,以便“大量商业用户”需要付费,而其中不包括conda-forge
频道。
如果您不想为使用付费,则可能要坚持使用conda-forge
。如docs中所述:
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install <package-name>
您还可以使用miniforge作为默认频道,conda-forge
作为默认频道,并支持ppc64le和aarch64平台以及其他常用的平台。
答案 2 :(得分:0)
有些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
答案 3 :(得分:0)
在conda-forge渠道中,您可以找到专为conda构建的软件包,但尚未成为Anaconda官方发行版的一部分。
通常,您可以使用其中任何一个。