"Conda remove <package>" 永远删除包

"Conda remove <package>" taking forever to remove package

我注意到如果我试图删除在 space 中占用数百兆字节的巨大 conda 包,运行 conda remove <package> 将永远花费。这些大包的一些示例是 pystanspacy-model-en_core_web_lg

卡在没有错误信息;

Collecting package metadata (repodata.json): done

Solving environment:

任何提示如何解决这个问题?

我正在使用 anaconda,python3.8,windows10.

Conda 的删除操作仍然需要满足环境的所有其他规范,因此 Conda 调用其求解器,这可能很复杂。本质上,它重新解决了整个环境没有指定的包,将其与现有状态进行比较,然后根据差异制定计划。

我非常怀疑 OP 提到的包装大小是否有任何直接影响。相反,对解决问题产生负面影响的事情是:

  • 拥有大型环境(例如,安装了 anaconda 软件包)
  • 通道混合 - 特别是,在具有 anaconda包;该包及其所有依赖项均来自 anaconda 频道
  • 环境未指定(请参阅 conda env export --from-history 查看您的明确规格);例如,具有 python=3.8 规范的环境在求解器上比只有 python 规范
  • 更容易

一般来说,使用较小的专用(例如,按项目)环境,而不是大型单体环境有助于避免此类问题。 anaconda 包特别有问题。

试试曼巴

除了采用更好的做法之外,还可以使用 Mamba 获得明显更快的求解速度,这是 conda 的直接编译替代品。试试看:

## install Mamba in base env
conda install -n base conda-forge::mamba

## use it like you would the 'conda' command
mamba remove -n foo bar