Anaconda创建虚拟环境入过的坑
刚接触anaconda的时候还不觉得创建不同的虚拟环境的必要性,闲来无聊的时候想自己做表情包,看网上的教程,用到了face_recognition,然而安装这个包需要先安装dlib,python3.6的环境,我安装的anaconda是python3.8的版本,就想着创建一个专门用来做表情包的环境吧。
#创建虚拟环境
conda create --name ***** python=3.6
这都好好的,直到昨天,想研究一下GAN,在网上找了相关论文及代码,需要用到pytorch、cuda、cudnn。cuda、cudnn的安装就不多说了,网上有很多教程(虽然有教程,但是下载加安装我也花了一天的时间!!!)
这些安装好后就开始创建虚拟环境了
conda create --name pytorch--gpu
当时没有意识到一定要加python版本!!!(这就是问题的关键)
pytorch的安装之路必然是道阻且长的,先是pip install网络连接错误,又换了清华镜像源还是错误,只能去官网下载,下载好了之后安装很快就成功了,当时很奇怪怎么这么快就好了,为什么没有下载基础包之类的。
导入torch,以及看torch.cuda是否可以正常使用,显示成功,就在我以为大功告成的时候,去pytorch-gpu这个环境看了一下,竟然只有一个文件?
(环境目前我已经改好了,这里我是重新建了一个环境来看看当时我看的东西)
按道理讲应该是这个样子的:
conda list 现实也是空的
pytorch安装到哪了???????
我进入anaconda的base环境
(base) C:\Users\asus>python
Python 3.8.3 (default, Jul 2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>import torch
>>print(torch.cuda.is_available())
True
除了anaconda,我还安装了python,cmd进入python
C:\Users\asus>python
Python 3.8.3 (default, Jul 2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>import torch
>>print(torch.cuda.is_available())
True
我就彻底懵了,pytorch安装到了大环境吗?!?!?!可是我明明是进入我创建好的环境安装的pytorch?!?!?!?!?!?!
后来搜索发现pytorch这个包出现在了anaconda文件夹下的pkgs。
百度了一下这个包是用来干嘛的,“里面是各种包的各个使用过的版本及压缩包。比如用conda update pandas,那在Lib\site-packages里会更新到新版本。但pkgs里既有新版本,也有旧版本。我推测是conda先把包下载到pkgs里,解压,然后更新site-packages里正式用到的包”,百度搜到的解释是这样的。
但显然我的情况跟这个不一样,我猜测pkgs这个文件里的包因该是各个环境公用的???这一点有待考证。
反正就是pytorch不知道安装在哪里了,同时也感觉我的环境都混乱了。突然就想到了到了以前安装tensorflow的cpu版本,安装挺成功的,点进去那个环境文件夹,里面的文件也正常,我就想是不是在创建虚拟环境的时候必须要指定python版本。
出于强迫症的我卸载了anaconda,重新装了一次。再次创建虚拟环境pytorch-gpu的时候我指定了python版本。接着离线安装pytorch
果然!!!安装的时候同时下载了所需要的基础包,这样就说明和其他的虚拟环境隔离开了,安装好后,虚拟环境pytorch-gpu文件夹下的文件也都正常了。
显示安装成功
再进入base环境,显示不成功:
这下总算是安装好了,环境也都隔离开了,我的强迫症也治好了。
最后总结一下:
1、创建虚拟环境的时候要指定python版本!!!
2、anaconda下pkgs包的作用接着研究。
pkgs文件的讲解这个博客里讲的很清楚 https://blog.csdn.net/qq_44868807/article/details/106399893
碎碎念:第一次写博客感觉写的有点像流水账(表情包也不会加,尴尬)。以后会坚持把看过的论文写成博客,算是一种记录,也是一种总结吧。