Conda的安装需要永远(被SAT求解器保留)

时间:2019-05-22 17:22:04

标签: python miniconda

我该如何解决conda installer的问题,它需要永远解决巨大的SAT问题(我们为什么需要解决它们?):

DEBUG conda.common.logic:_run_sat(734): Invoking SAT with clause count: 9661561
DEBUG conda.common.logic:_run_sat(734): Invoking SAT with clause count: 5164645
DEBUG conda.common.logic:_run_sat(734): Invoking SAT with clause count: 2751948
DEBUG conda.common.logic:_run_sat(734): Invoking SAT with clause count: 1518175
DEBUG conda.common.logic:_run_sat(734): Invoking SAT with clause count: 964848
DEBUG conda.common.logic:_run_sat(734): Invoking SAT with clause count: 1249154
DEBUG conda.common.logic:_run_sat(734): Invoking SAT with clause count: 1105581

等待了半个多小时,我还能做些什么,然后重新安装它?

2 个答案:

答案 0 :(得分:1)

我通过修改 ~/.condarc 解决了这个问题

换句话说,conda-forge 太慢了,所以将默认值设为求解器的第一优先级

通过改变这个:

auto_activate_base: false
channels:
  - conda-forge
  - defaults
channel_priority: strict
allow_conda_downgrades: true

为此:

auto_activate_base: false
channels:
  - defaults
  - conda-forge
channel_priority: strict
allow_conda_downgrades: true

答案 1 :(得分:0)

conda在试图找出一种方法来满足已安装软件包的所有依赖性以及要应用的更改时,可能会陷入无休止的循环。我在某处读到,如果两分钟内仍未找到解决方案,那么再等待就没有多大意义了。

通常,您可以通过更明确地了解所需内容来克服这种情况。例如,指定确切的版本,而不只是包名称。如果不需要conda-forge,请避免使用该通道,因为它会带来很多SAT解析器将尝试考虑的元数据。

这是Anaconda的一篇博客文章,内容涉及提高性能的方法:
    https://www.anaconda.com/understanding-and-improving-condas-performance/