手动删除anaconda python中pkgs文件夹中的所有文件是否安全?

时间:2019-05-22 23:27:03

标签: python anaconda

我运行了此命令以释放anaconda上的磁盘空间

$ conda clean -all

但是,anaconda python的pkgs文件夹中仍有一些大文件。

手动删除pkgs文件夹中的所有文件是否安全?有损坏我的蟒蛇环境的风险吗?有什么副作用?

我正在Windows 10上使用anaconda 2018。

2 个答案:

答案 0 :(得分:3)

不,这绝对不安全,实际上,实际上,释放磁盘空间的唯一方法是破坏 base 环境。问题是所有环境都使用到pkgs目录的硬链接,因此,即使您删除pkgs目录中的 link ,环境中的链接仍然存在这样您就不会删除磁盘上的任何物理文件。您唯一可能做的真正删除操作是仅由 base 引用,即,唯一的副本位于pkgs中,因此有可能破坏 base

我强烈建议您查看this other post on estimating the real disk usage of Conda。您可能高估了实际使用了多少空间。对于pkgs中的大多数文件,只有一个物理副本,因此无需进行任何其他手动优化。

答案 1 :(得分:3)

实际上,在某些情况下,可以删除pkgs子目录。如Anaconda社区支持here所述,“ pkgs目录只是一个缓存。您可以根据需要完全删除它。 但是,在创建新环境时,将所有程序包保留在缓存中会更有效。”

根据documentation,您可以使用conda clean --packages删除pkgs中未使用的软件包(这会将它们移动到pkgs/.trash,您可以从中安全地删除它们)。虽然这不会检查使用返回到程序包缓存的符号链接安装的程序包,但是如果您不使用此类环境或在Windows下工作,则不是主题。我想这就是conda clean --packages包含在conda clean --all中的原因。

要更积极地节省空间,您可以使用conda clean --force-pkgs-dirs删除所有可写的程序包缓存(同样的警告是,可能有环境链接到这些目录)。如果您不使用环境或在Windows下使用Anaconda,则可能很安全。就个人而言,我使用此选项没有问题。