可能自己常常会遇到一个这样的问题,自己服务器安装的是python2,但是现在有的代码是基于python3的啊
怎么办?自己将代码转换成python2的呗,是的,我曾经就这样做过,但是真的是很鸡肋
更有一种情况,有的代码基于的pytorch的版本比较老怎么办?卸载了重装呗,很多依赖依旧是卸载重装,是的我曾经就这样搞过
但是有这么多代码要跑,一直用这样一种操作方式也不是办法呀,比如我今天跑的代码依赖比较老的版本,明天跑的代码依赖比较新的版本。所以要一直这样切换?
之前我们有三台服务器,不同的服务器有不同的配置,比如有的服务器是python2的,有的服务器是python3的,这样操作还是比较容易一些,但是数据也要triple啊!强迫症根本就受不了
于是,我发现可以用conda来创建虚拟环境,并且重新生成一个你想要的python环境,和新的一样
在创建conda环境之前,我之前安装镜像的时候都是用proxychains + 命令,可以走代理,但是,我最近发现使用清华的源貌似是比用proxychains要来的更快,添加清华源的命令是(参考链接)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes
添加了清华的源之后,下载包飞快,p大的小伙伴表示很服气
创建虚拟环境的命令是
conda create -n spherecnn python=3.6
上述命令创建一个名称为spherecnn的python版本为3.6的虚拟环境
用以下命令可以列出已经创建出来的虚拟环境
conda env list
conda中存在的虚拟环境如下图所示
然后
source activate spherecnn
即可激活自己创建的虚拟环境
这个时候终端的前面会显示你自己创建的虚拟环境
运行
source deactivate spherecnn
退出虚拟环境
进入到虚拟环境之后,试着输入python,发现确实是3.6
这个时候你用conda命令安装的所有包,都是安装在虚拟环境里面,非常爽,需要什么版本的就安装什么版本的
而退出虚拟环境之后,输入python,看一下python的环境是多少
可以看出来,是python2的环境
虚拟环境python这个执行器的路径在哪里呢?
~/anaconda2/envs路径包含了所有的你创建的虚拟环境,spherecnn的python执行器在~/anaconda2/envs/spherecnn/bin/pyhon路径下,pycharm在remote进行调用远程的编译器的时候需要知道这个路径。
不仅仅是pycharm了,jupyter notebook也可以设置虚拟环境,但是首先需要安装
conda install nb_conda
然后安装ipykernel并且在ipykernel中添加我们创建的虚拟环境
conda install ipykernel
python3 -m ipykernel install --user --name=spherecnn
然后启动jupyter的时候就可以在kernel中选择自己所需要的kernel版本了
虚拟环境的出现,大大提高了生产效率,感谢conda