删除Conda环境不会释放磁盘空间

时间:2020-09-19 17:47:34

标签: conda

我在Conda环境中安装了一堆软件包,包括带有NVIDIA工具包的Docker容器和其他一些非Python库。安装大约需要10 GB的磁盘空间。但是,当我删除Conda环境时,没有返回磁盘空间(未释放)。删除环境是否应该导致删除在该环境中创建的所有文件?

使用pip,apt-get install,apt-add存储库等安装了环境中安装的一些东西。

在Conda环境中安装软件包时,命令行以(my_environment)为前缀。

Conda环境是使用以下命令在Ubuntu 18.04上创建的: 康达创建-n my_environment

通过以下方式激活环境:conda activate my_environment

通过以下方式删除了环境:conda remove --name my_environment --all

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

Conda包缓存

Conda的工作方式是先将软件包下载到软件包缓存(选中conda config --show pkgs_dirs),然后通过从以下目录中的文件/文件夹复制或将其硬链接到特定环境来“安装”软件包:包缓存。此过程有助于最大程度地减少跨多个环境的程序包的冗余。也就是说,当环境使用相同的程序包版本(内部版本)时,它允许环境共享程序包的单个物理副本。

请记住,答案是否,您正在遇到预期的行为。删除环境通常只会删除硬链接,而不会删除程序包缓存中的文件。要实现后者,需要额外使用

# read warning below before running this
conda clean --tarballs --packages

这将清除所有临时tarball和未与任何环境硬链接的软件包。

警告:请注意标志说明

 -p, --packages        Remove unused packages from writable package caches.
                       WARNING: This does not check for packages installed
                       using symlinks back to the package cache.

该警告与大多数用户无关(例如,默认配置为allow_softlinks: False),但是某些警告可能正在使用符号链接(软链接)来最大程度地减少程序包缓存位于其他物理设备上的设置中的冗余磁盘而不是创建环境的位置。