如何释放(ana)conda占用的磁盘空间?

Mak*_*e42 32 python anaconda conda

我正在使用conda包管理器 - 很多.到目前为止,我有很多环境,而且很多下载的软件包在我的SSD上占用了大量空间.释放一些空间的一个明显途径是使用该命令

conda env export > environment.yml
Run Code Online (Sandbox Code Playgroud)

https://conda.io/docs/user-guide/tasks/manage-environments.html#exporting-the-environment-file导出我的旧的非活动项目使用哪些包(d),然后删除这些环境.据我了解,这应该释放一些空间anaconda2/envs/,但不是anaconda2/pkgs/.我如何摆脱这些包裹?另外,我怀疑可能还有很多软件包仍然存在,没有环境可以链接到 - 这可能会发生吗?

问题:

  1. 一般来说:减少conda占用空间的最佳方法是什么?
  2. 如何摆脱没有环境使用的软件包?我该如何修剪我的包裹?我正在寻找像sudo apt-get autoremoveUbuntu/Debian 这样的东西.

Mik*_*ler 77

你可以释放一些空间:

conda clean --all
Run Code Online (Sandbox Code Playgroud)

clean 删除未使用的包和缓存.

Conda在可能的情况下已经使用了符号链接.所以,我想这里改进不多.

好的,谢谢,但我想知道"不是针对特定环境,而是针对所有环境".

您可以使用几行Python列出所有env中的所有包:

import os
import subprocess
for env in os.listdir('/Users/me/miniconda3/envs'):
    subprocess.call(['conda', 'list', '-n', env])
Run Code Online (Sandbox Code Playgroud)

  • 我用`conda clean --dry-run --all`进行了尝试。超过3GB的空间将被删除-不错。但是,它列出了我最近安装并积极使用的软件包。这让我感到困惑:要删除“ .tar.bz2”时,这是什么意思?那些只是下载而不是安装吗?或者,也许它是旧的东西,并且我安装了永不版本(我忘记了)? (3认同)
  • `.tar.bz2`只是为潜在的第二次安装而缓存的下载.它们被称为tarball.只要有使用,安装就会保留. (2认同)
  • 在我的答案中添加一个解决方案。顺便说一句,如果它解决了您的问题,您可以接受答案。;) (2认同)

Mak*_*e42 5

终于我解决了这个问题。最后花了几天的时间:

  1. 对于我所有的Python项目,我都使用PyCharm,并检查了哪个项目使用哪个环境。对于所有环境,我都使用conda env export > environment.yml来保存https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-the-environment-file中的环境设置
  2. 检查我的项目是否仍然可以使用由environment.yml创建的新环境。
  3. anaconda-cleanhttps://docs.anaconda.com/anaconda/install/uninstall中的选项B 使用,并将创建的备份放置在保存位置。
  4. 将旧anaconda2目录重命名为anaconda2_backup
  5. 安装新的conda环境- miniconda3就我而言。
  6. 从中构建当前项目所需的新环境,environment.yml并检查它们是否有效。
  7. 删除旧的anaconda备份。

最后,我还使用https://blog.shadypixel.com/how-to-shrink-an-lvm-volume-safely/减小了逻辑卷,但这仅适用于使用LVM的Linux用户。

这样,我可以释放20到30 GB的空间。

  • @ARoebel:/sf/ask/3409458391/?noredirect=1#comment114591652_48706601暗示当时`clean - all` 对我来说不起作用:当时清理的太少,而对于当前版本,它清理的更多。这就是为什么当时我接受了自己的答案作为解决方案,后来又将其更改为迈克·穆勒的答案。另外,我遇​​到的问题是,我有很多休眠项目的环境,我必须备份和删除这些配置。(也许这才是真正的问题,但我无法重现这个问题。) (2认同)