详解Anaconda中的pkgs的作用以及是否可以删除

缘起

anaconda是什么就不做更多的介绍了,总之就是用上之后就不可能在单独去装一个python了。

因为有些项目需要用到Python3.6+版本,而且看起来需要长期使用python3.6+。而我自身的anaconda3环境依旧停留在py3.5时代。用py36的时候只是构建一些envs虚拟环境而已。

考虑到目前没有py35(更高版本都支持)的需求,郑重决定升级python3.7,下载了anaconda3的2018最后一个版本,安装后占用如下:

安装包大小差不多600m,安装后已经赶上了当年winXP的精简版C盘占用了,有5个多G,而其中PKGS文件夹就占了将近3个G!!!!天啦噜!

 

什么是pkgs

在anaconda中,最安全的安装和升级命令是conda install XXX,而python中是pip,但在anaconda下依然可以使用pip升级,这样一些依赖可能会因为更新后的版本过高出现异常。

在conda的设计中,目录'pkgs'是下载、存放缓存,以及提取下载的conda包的地方。同时,anaconda一起携带的包也会放在这里。

它有一个非常关键的作用:我们在构建一些envs的时候,对一些包的依赖会通过硬盘链接链接到pkgs目录,这样虚拟环境生成的速度大大加快,占用空间就大大减小了!!!

 

能不能/怎么清空pkgs?

当然是可以清理pkgs的。

第一种方式是直接删除pkgs,大大节省空间。但坏处就是当创建新环境时,现有包(在其他环境中)的共享文件将不再共享硬链接。

第二种官方推荐的方式更加安全:

通过conda clean -h 命令来删除即可。