“Conda remove <package>”需要永远删除包

use*_*207 5 python anaconda conda

我注意到,如果我尝试删除占用数百兆空间的巨大 conda 包,运行conda remove <package>将永远持续下去。这些巨大的包的一些例子是pystanspacy-model-en_core_web_lg

它卡在没有错误消息的情况下;

收集包元数据(repodata.json):完成

解决环境:

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

我正在使用 anaconda、python 3.8、Windows 10。

mer*_*erv 16

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

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

  • 有一个大的环境(例如,anaconda安装了包)
  • 通道混合 - 特别是,包括具有相同或更高优先级的conda-forge通道作为软件包环境中的默认值anaconda;该包及其所有依赖项均来自anaconda频道
  • 环境未指定(请conda env export --from-history参阅您的明确规格);例如,具有规范的环境对于求解器来说比仅具有规范python=3.8更容易python

一般来说,使用较小的专用(例如,每个项目)环境而不是大型整体环境有助于避免此类问题。该anaconda包尤其有问题。

尝试曼巴

除了采用更好的实践之外,人们还可以使用Mamba获得更快的解决速度,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
Run Code Online (Sandbox Code Playgroud)

  • “曼巴”效果非常好。它解决了我的问题。非常感谢。 (3认同)