关于Anaconda(Miniconda)虚拟环境中的包的问题pkgs
今天从anaconda换成了miniconda,在重新安装tensorflow时发现可以直接使用conda install cudatookit安装cuda(应该是早就有了,只是我没注意到)。
这就让我想到一个问题,A虚拟环境中的包如果版本相同的话,可不可以用base环境或者其他虚拟环境中已经安装好的包呢,以下先说结论
首先,所有的包,不论base环境还是虚拟环境都是放在pkgs文件夹下。如果虚拟环境需要安装的包与pkgs中已有的包版本完全一样,则不会再下载,而是通过硬盘链接直接找到该包,反之当一个包被多个环境使用时,从某一个环境卸载该包也不会将其从pkgs文件夹删除
以下做了一点小实验:
- 首先激活我创建的虚拟环境tf,查看其python版本:
可以看出是3.7.4,然后去miniconda目录下的pkgs里找sklearn的文件夹(tensorflow过于大了),可以找到以下两个版本的sklearn:
后缀包含37的是我tf环境中的,包含38的是我base环境中的。 - 为了版本对应,我再创建一个虚拟环境叫