[英]Should conda, or conda-forge be used for Python environments?
Conda
和 conda conda-forge
forge 都是 Python package 管理者。 当两个存储库中都存在 package 时,什么是合适的选择? 例如 Django,两者都可以安装,但两者的区别在于几个依赖项(conda-forge 有更多)。 没有对这些差异的解释,甚至没有简单的自述文件。
应该使用哪一个? 康达还是康达锻造? 有关系吗?
简短的回答是,根据我的经验,一般来说,使用哪个并不重要。
长答案:
所以conda-forge
是一个额外的渠道,可以从中安装软件包。 从这个意义上说,它并不比默认频道或人们发布包裹的其他数百(数千?)频道中的任何一个更特别。 如果您在https://anaconda.org上注册并上传您自己的 Conda 包,则可以添加您自己的频道。
在这里,我们需要区分conda
(跨平台包管理器)和conda-forge
包通道)之间的区别,我认为您在问题中的措辞并不清楚。 conda
软件的主要开发者 Anaconda Inc.(前身为 Continuum IO)也维护了一个单独的软件包通道,这是您键入conda install packagename
而不更改任何选项时的默认设置。
可通过三种方式更改频道选项。 每次安装软件包时都会执行前两个,最后一个是持久的。 第一个是每次安装包时指定一个频道:
conda install -c some-channel packagename
当然,该软件包必须存在于该频道上。 这种方式将从some-channel
安装packagename
及其所有依赖some-channel
。 或者,您可以指定:
conda install some-channel::packagename
该包仍然必须存在于some-channel
,但现在,只会从some-channel
提取packagename
。 将从您的默认频道列表中搜索满足依赖项所需的任何其他包。
要查看您的频道配置,您可以编写:
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
,使用conda-forge
通道而不是 Anaconda 维护的defaults
通道有四个主要原因:
conda-forge
软件包可能比defaults
频道上的软件包更新conda-forge
频道上的某些软件包defaults
不可用openblas
(来自openblas
conda-forge
mkl
)而不是mkl
(来自defaults
)。 Anaconda 更改了他们的服务条款,以便“重度商业用户”必须付费,其中不包括conda-forge
频道。
如果您不想为使用付费,您可能希望坚持使用conda-forge
。 如文档中所述:
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install <package-name>
您也可以使用miniforge ,它以conda conda-forge
forge作为默认通道,并支持 ppc64le 和 aarch64 平台以及其他常用平台。
如果您安装了conda
并想删除默认频道,您可以使用
conda config --show channels
查看您的频道,并可以使用
conda config --remove channels channel-name
删除频道。
在 conda-forge 频道中,您可以找到为 conda 构建但尚未成为官方 Anaconda 发行版的一部分的软件包。
通常,您可以使用其中任何一个。
根据我的经验, conda-forge
频道提供了更多的软件包,而且它们也是最新的。 这就是为什么我将它用作我的默认频道,可以这样做
conda config --add channels conda-forge
conda config --set channel_priority strict
有些 Python 库无法通过简单的conda install
因为除非您应用 conda-forge,否则它们的频道不可用。 根据我的经验,pip 比 conda 更通用,可以查看不同的渠道来源。 例如,如果你想安装python-constraint
你可以通过pip install
来安装,但是通过 **cond ** 安装它。 您必须指定通道 - conda-forge
。
conda install -c conda-forge python-constraint // works
但不是
conda install python-constraint
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.