我在使用conda安装虚拟环境的过程中,下载一些包,比如torch等,发现在虚拟环境中有一份以外,pkgs文件夹下同样也会出现一份,大小一样,这样就让我担心一物多备份导致浪费空间的问题,
Anaconda/pkgs文件夹9.2G
Anaconda/envs/first_env文件夹4.4G
Anaconda文件夹才9.5G
于是我查找了一些资料,
PKGS的概念:
在anaconda中,最安全的安装和升级命令是conda install XXX,而python中是pip,但在anaconda下依然可以使用pip升级,这样一些依赖可能会因为更新后的版本过高出现异常。
在conda的设计中,目录'pkgs'是下载、存放缓存,以及提取下载的conda包的地方。同时,anaconda一起携带的包也会放在这里。
它有一个非常关键的作用:我们在构建一些envs的时候,对一些包的依赖会通过硬盘链接链接到pkgs目录,这样虚拟环境生成的速度大大加快,占用空间就大大减小了!!!
能不能/怎么清空PKGS?
当然是可以清理pkgs的。
第一种方式是直接删除pkgs,大大节省空间。但坏处就是当创建新环境时,现有包(在其他环境中)的共享文件将不再共享硬链接。
第二种官方推荐的方式更加安全:通过conda clean -h