Conda
和 conda-forge
都是 Python 的包管理器。如果一个包同时存在于这两个仓库中,应该选择哪一个?例如 Django 可以通过这两个管理器安装,但是两者之间存在几个依赖项的差异(conda-forge 拥有更多)。并没有对这些差异进行解释,甚至没有一个简单的 README。
应该使用哪一个?Conda 还是 conda-forge?这有关系吗?
conda install -c some-channel packagename
some-channel
安装 packagename
及其所有依赖项。或者,您可以指定: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
上不可用的软件包conda-forge
的依赖项(例如 openblas
)而不是来自 defaults
的 mkl
conda install -c some-channel packagename
的方式编写命令可能会更容易些。 - darthbithconda-forge
频道。
main
频道由Anaconda维护,而conda-forge
由软件包的维护者自己维护。它们各有优缺点。在main
频道上的软件包通常彼此兼容,这意味着您可以安装几乎任何您想要的软件包,并且不会有依赖冲突。另一方面,conda-forge
频道上的软件包比main
频道上的软件包更新得快得多,因为维护者们自己将更新推送到频道。不时地,Anaconda对main
频道上可用的软件包进行修补,这些修补程序不受软件包的维护者支持和完成,这可能是好事或坏事,但绝对不在维护者的控制之内,也不受其支持。pypi
上可用的版本,则可能希望坚持使用conda-forge
。如docs所述:conda config --add channels conda-forge
conda config --set channel_priority strict
conda install <package-name>
conda-forge
,支持ppc64le和aarch64平台以及其他常见平台。conda
并想要删除默认通道,则可以使用:conda config --show channels
查看您的频道,并可以使用{{}}。
conda config --remove channels channel-name
移除一个频道。
miniforge
。 - adrinconda-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
conda update --all
等命令将不会更新已安装的 pip 包。请注意,本翻译只修改了语言表达,没有改变原意,并且不提供额外解释或其他内容。 - Jean Monet
conda
是一个包管理器,而conda-forge
是一个频道。也许在提出这个问题时是正确的?" - endolith