如何释放 (ana)conda 占用的磁盘 space?
How to free disk space taken up by (ana)conda?
我经常使用 conda 包管理器。到目前为止,我有相当多的环境和大量下载的软件包在我的 SSD 上占用了大量 space。释放其中一些 space 的明显途径是使用命令
conda env export > environment.yml
从 https://conda.io/docs/user-guide/tasks/manage-environments.html#exporting-the-environment-file 导出我的旧的、不活动的项目使用的包(d),然后删除这些环境。据我了解,这应该会释放 anaconda2/envs/
中的一些 space,但不会释放 anaconda2/pkgs/
中的一些 space。我如何摆脱这些包裹?另外,我怀疑可能还有很多软件包仍然存在,没有环境链接到它们 - 会发生这种情况吗?
问题:
- 总的来说:减少 conda 占用的 space 的最佳方法是什么?
- 如何删除没有环境再使用的包?如何修剪我的包裹?我正在从 Ubuntu/Debian.
中搜索类似 sudo apt-get autoremove
的内容
您可以通过以下方式释放一些 space:
conda clean --all
clean
Remove unused packages and caches.
Conda 已经在可能的情况下对包使用了符号链接。所以,我想这里没什么可改进的。
Ok, thanks, but I would like to know "not for a specific environment, but in general" - for all environments.
你可以用几行 Python:
列出所有环境中的所有包
import os
import subprocess
for env in os.listdir('/Users/me/miniconda3/envs'):
subprocess.call(['conda', 'list', '-n', env])
我终于解决了这个问题。最后是几天的工作:
- 对于我所有的 Python 项目,我使用 PyCharm 并使用它检查哪个项目使用哪个环境。对于所有环境,我使用
conda env export > environment.yml
从 https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-the-environment-file 保存环境设置
- 检查我的项目是否仍然适用于从 environment.yml 创建的新环境。
- 使用 https://docs.anaconda.com/anaconda/install/uninstall 选项 B 中的
anaconda-clean
并将创建的备份放在保存位置。
- 将旧的
anaconda2
目录重命名为 anaconda2_backup
。
- 安装新的 conda 环境 -
miniconda3
在我的例子中。
- 从
environment.yml
开始构建当前项目所需的新环境,并检查这些环境是否有效。
- 删除旧的 anaconda 备份。
最后,我还使用 https://blog.shadypixel.com/how-to-shrink-an-lvm-volume-safely/ 减少了我的逻辑卷,但这仅适用于使用 LVM 的 Linux 用户。
这样我就可以释放 20 到 30 GB 的 space。
我经常使用 conda 包管理器。到目前为止,我有相当多的环境和大量下载的软件包在我的 SSD 上占用了大量 space。释放其中一些 space 的明显途径是使用命令
conda env export > environment.yml
从 https://conda.io/docs/user-guide/tasks/manage-environments.html#exporting-the-environment-file 导出我的旧的、不活动的项目使用的包(d),然后删除这些环境。据我了解,这应该会释放 anaconda2/envs/
中的一些 space,但不会释放 anaconda2/pkgs/
中的一些 space。我如何摆脱这些包裹?另外,我怀疑可能还有很多软件包仍然存在,没有环境链接到它们 - 会发生这种情况吗?
问题:
- 总的来说:减少 conda 占用的 space 的最佳方法是什么?
- 如何删除没有环境再使用的包?如何修剪我的包裹?我正在从 Ubuntu/Debian. 中搜索类似
sudo apt-get autoremove
的内容
您可以通过以下方式释放一些 space:
conda clean --all
clean
Remove unused packages and caches.
Conda 已经在可能的情况下对包使用了符号链接。所以,我想这里没什么可改进的。
Ok, thanks, but I would like to know "not for a specific environment, but in general" - for all environments.
你可以用几行 Python:
列出所有环境中的所有包import os
import subprocess
for env in os.listdir('/Users/me/miniconda3/envs'):
subprocess.call(['conda', 'list', '-n', env])
我终于解决了这个问题。最后是几天的工作:
- 对于我所有的 Python 项目,我使用 PyCharm 并使用它检查哪个项目使用哪个环境。对于所有环境,我使用
conda env export > environment.yml
从 https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-the-environment-file 保存环境设置
- 检查我的项目是否仍然适用于从 environment.yml 创建的新环境。
- 使用 https://docs.anaconda.com/anaconda/install/uninstall 选项 B 中的
anaconda-clean
并将创建的备份放在保存位置。 - 将旧的
anaconda2
目录重命名为anaconda2_backup
。 - 安装新的 conda 环境 -
miniconda3
在我的例子中。 - 从
environment.yml
开始构建当前项目所需的新环境,并检查这些环境是否有效。 - 删除旧的 anaconda 备份。
最后,我还使用 https://blog.shadypixel.com/how-to-shrink-an-lvm-volume-safely/ 减少了我的逻辑卷,但这仅适用于使用 LVM 的 Linux 用户。
这样我就可以释放 20 到 30 GB 的 space。