【问题标题】:How to reduce the number of files in the anaconda directory?如何减少anaconda目录中的文件数量?
【发布时间】:2017-03-07 13:43:06
【问题描述】:

我在计算集群上运行 conda 环境,其中每个“项目”的文件总数受到限制(最多 200k 个文件)。我只创建了几个 conda 环境(用于 Python 2.7 的 anaconda;每个环境中安装了大约 200 个 python 和 R 包;环境之间的包重叠度很高)并且已经达到了该文件数限制。即使使用conda clean -a,也只会删除一小部分文件。我的 conda 环境中的一些 python 包(例如 boost)包含超过 10k 的文件,而 clean 不会减少这个。

有什么方法可以大大减少存储在 conda 环境中的文件数量?

【问题讨论】:

  • 是否要求您拥有所有 anaconda 软件包?安装 anaconda 包括 100 个软件包。你真的需要所有这些吗?也许你可以安装 miniconda。或者干脆用你真正需要的那些包创建一个 conda 环境。
  • 是的,我至少需要这些软件包中的大部分。实际上,我什至还没有添加很多想要包含在我的 conda 环境中的生物信息学软件。我不明白为什么 conda 需要保留这些包分发中的所有这些文件。我很惊讶其他人没有遇到与 conda 环境相关的大量文件的问题。
  • 那么只安装必要的软件包的 miniconda 没有帮助吗?
  • 同意使用 miniconda 并明确添加软件包。如果性能不是问题,您还可以告诉 python 解释器不要生成字节码 (*.pyc) 文件。
  • 我会先删除保存下载文件缓存的 pkgs 目录

标签: python r anaconda conda


【解决方案1】:

Anaconda 使用硬链接来减少消耗的磁盘空间。但是,如果对文件数量施加了限制,则每个硬链接都很重要。

正如 cmets 中所讨论的,使用 Miniconda 代替 Anaconda,并且只安装您实际需要的软件包,可能会有所帮助。

如果这还不够,我建议您将多个环境合并为一个。然后,重叠的包的硬链接就会减少。当然,这与环境的用途相反,但这就是变通办法的本质。

【讨论】:

  • 我很惊讶更多的人没有遇到与新 conda env 相关的大量文件的问题。即使我们只使用 miniconda,并且每个用户只有几个他们为自己创建的环境,2 环境 x 30 用户 x 5-10k 个文件_per_env = 300k 到 600k 个文件!目前,我们的 miniconda 安装中有大约 180 万个文件,这是在运行 conda clean --all 之后。
  • 文件数量在当今的文件系统中不再是问题。用户限制通常是通过对消耗的磁盘空间的配额来实施的,而不是文件数量。
  • 对于文件系统的完整扫描或复制,文件数量可能会大大降低速度,尤其是在文件数量以百万计的情况下。
猜你喜欢
  • 2012-04-27
  • 2020-03-27
  • 2022-06-15
  • 2021-02-15
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多