2016-10-04 99 views
26

我了解conda-forge是为了构建和维护软件包而发起的。创建Anaconda Python环境时,我应该使用Conda还是Conda Forge?

但是,当构建Anaconda Python环境时,如果两个存储库中都存在程序包,我们如何知道何时使用'conda-forge'经文'conda install'?例如,Django可以安装'conda install'和'conda-forge'。

我们应该使用哪一个?有关系吗?

有人能给我一个非常简短的“conda-forge for dummies”课吗?文档非常少。

感谢

回答

49

简短的回答是,在我的经验一般,没关系,你使用。

长的答案:

所以conda-forge是可以从其中安装的软件包的附加通道。从这个意义上说,它不是比默认频道或其他数百(数千个)频道中人们发布套餐所特有的更特别的。如果您注册https://anaconda.org并上传您自己的Conda包,您可以添加自己的频道。

在这里,我们需要从问题描述中看出,在跨平台软件包管理器conda和软件包频道conda-forge之间,我不清楚您的区别。 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通道,而不是defaults通道由连续保持四个主要原因:

  1. conda-forge可以是封装更先进的日期比在defaults通道
  2. 上有conda-forge通道是不能从defaults
  3. 包你会更喜欢使用的依赖,如openblas(来自conda-forge)而不是mkl(来自defaults)。
  4. 如果您正在安装需要编译库的软件包(例如,C扩展名或C库附带的包装文件),那么如果您将所有软件包安装在环境中,则它可以减少不兼容的可能性:由于基本C库的二进制兼容性(但此建议可能会过时/将来发生变化)导致的单通道。
+0

谢谢!我有两个相关的问题: 1.我怎么知道哪个频道是好的尝试; 2.在我配置一个通道后,如何将其重置为默认值? – Daniel

+0

@Kenny要回答你的第一个问题,你应该在https://anaconda.org上搜索你想要的软件包,看看哪个频道有这个软件包。我编辑了答案来回答你的第二个问题。不过,我也注意到,如果你想从一个通道安装一个软件包,使用'conda install -c some-channel packagename'编写命令可能会更容易 – darthbith