【问题标题】:Where does conda clean remove packages from?conda clean 从哪里删除包?
【发布时间】:2018-08-22 05:50:21
【问题描述】:

conda 文档指定:

conda clean [-h] [-y] [--dry-run] [--json] [--debug] [--verbose] [-q] [-a] [-i] [-l] [-t] [-p] [-s]

删除未使用的包和缓存。

例子:

conda clean --tarballs

(conda clean documentation)

所以应该删除 unused 包。

从哪里来?

  • 来自 conda(基础)?
  • 来自活动环境?

环境是否需要激活?

它怎么知道它们是未使用的包?

【问题讨论】:

  • 有些问题需要回答。比如如何知道它们是否未被使用?

标签: conda


【解决方案1】:

无论您碰巧安装了 conda,它都会从 pkgs/ 目录下删除未使用的软件包。 “未使用”的包是未在任何环境中使用的包。所有 conda 包都存储在 pkgs/ 目录下,然后硬链接(如果可能)到环境中。

顺便说一句,conda clean 会打印出包裹的实际位置:

$ conda clean -all
Cache location: /data/processing/ryan/miniconda/pkgs
Will remove the following tarballs:

/data/processing/ryan/miniconda/pkgs
------------------------------------
filelock-3.0.10-py_0.tar.bz2                   9 KB

编辑 13.3.2020rvf 指出在 conda 4.8.2 中 -all 选项已更改为 -a--all

【讨论】:

  • 自 conda 4.8.2 起,参数必须为 -a--all
  • 谢谢@rvf,我会更新答案以包含它。
  • @DevonRyan 根/基础环境是否算作一个环境,以确定是否在一个包中使用?
  • @weirdalsuperfan 是的
  • @DevonRyan 你说“一个“未使用”的包是一个没有在任何环境中使用的包。但我不明白这意味着什么……你能更详细地解释一下吗? conda update --all 删除不再需要作为任何其他包的依赖项的包,那么这与“未使用”有什么不同吗?
【解决方案2】:

这是一个非常重要的问题,值得更多讨论。

    conda clean --all 

将删除未使用的包和缓存。

它将从所有环境中删除所有未使用的包,而不仅仅是当前激活的包

这可能会释放数十 GB 的空间。我有大约 25 个 conda 环境用于不同的数据科学开发和培训项目。 Anaconda 安装与我所有的 conda 环境一起膨胀到超过 60GB 的空间。

Anaconda Navigator 中执行 Remove 操作实际上并没有释放磁盘空间。

使用conda clean --all 删除未使用的包、临时文件、轮子、exe 文件和其他不再使用的二进制文件。

需要重新启动 Windows 才能真正删除未使用的软件包。

【讨论】:

  • 很有趣知道它可以使用这么多空间。
猜你喜欢
  • 2020-12-03
  • 2014-06-04
  • 2021-08-31
  • 2021-08-10
  • 2011-07-19
  • 1970-01-01
  • 2023-04-03
  • 2019-07-09
  • 1970-01-01
相关资源
最近更新 更多