【问题标题】:removing Conda environment does not free up disk space删除 Conda 环境不会释放磁盘空间
【发布时间】:2020-09-19 17:47:34
【问题描述】:

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

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

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

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

环境被激活:conda activate my_environment

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

发生了什么事?

【问题讨论】:

    标签: conda


    【解决方案1】:

    Conda 包缓存

    Conda 首先将包下载到包缓存(检查conda config --show pkgs_dirs),然后通过从包缓存中的文件/文件夹复制或硬链接将包“安装”到特定环境.此过程有助于最大限度地减少包的冗余跨多个环境。也就是说,当 env 使用相同的包版本(构建)时,它允许 env 共享包的单个物理副本。

    考虑到这一点,答案是不,您正在经历预期的行为。删除环境主要只是删除硬链接,但不会删除包缓存中的文件。要完成后者,需要额外使用

    # 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),但有些用户可能会使用符号链接(软链接)来最大限度地减少软件包缓存位于不同物理磁盘上的设置中的冗余创建环境的位置。

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多