换服务器了?想迁移原来服务器上的深度学习环境,但又觉得麻烦懒得重新安装一遍anaconda、pytorch?有没有办法能不费吹灰之力直接迁移?接下来跟着我一起,懒汉式迁移。
本方法适用于在同一内网下的两台服务器之间互相迁移,不在同一局域网下的话可能要弄内网穿透之类的了,那就另请高明了。同时配置的环境是anaconda
第一步:找到原服务器上anaconda路径并压缩
本质上,我们安装好的anaconda也就是一堆文件而已,我们安装的虚拟环境也会在anaconda根目录下,所以我们可以直接找到anaconda的安装目录,通常一般是在/home/你的用户名/anaconda3,用命令
which anaconda
# 或者
whereis anaconda
# 再或者
conda info --envs
知道路径后,到这个目录的上一级,将整个anaconda3目录压缩一下,得到它的压缩包。例如取名叫anaconda3.tar.gz,当然名字随意。
tar -czvf anaconda3.tar.gz anaconda3/
第二步:使用scp命令将压缩包传送到另一台服务器上
scp命令用于在本地主机和远程主机之间进行文件传输。它使用安全的加密协议在主机之间传输文件。我们可以把它看做cp命令的pro max版本,“super cp”,假设你服务器的ip是666.777.233.007,用户名是jinitaimei,你想传送到新的服务器home/year/of/kun目录下,那就可以这样:
scp anaconda.tar.gz jinitaimei@666.777.233.007:/home/year/of/kun/
如果你有自己的端口,比如2077,通过端口登录的话,就在scp后面加上-P
scp -P 2077 anaconda.tar.gz jinitaimei@666.777.233.007:/home/year/of/kun/
同样,还可以用scp来传你的代码或者数据集,建议同样压缩后传一整个文件会来得快些,传文件夹也行,加个-r选项就可以。
第三步:在新服务器上解压anaconda压缩包,添加环境变量
在新服务器上解压,然后设置一下环境变量,这里可以直接把原服务器上的环境变量的路径复制一下,写到新服务器上的bashrc里,
# 得到环境变量
echo $PATH | tr ':' '\n' | grep anaconda
# 在新服务器上
vim ~/.bashrc
# 把环境变量复制进去
source ~/.bashrc
# 然后试试conda env list
# 得到你原来的虚拟环境
激活一下某个环境,比如叫pytorch,此时系统会提醒你没有初始化,叫你使用conda init进行激活,并给出了几个选项,有bash、powershell等,(忘截图了),在linux下我们就选bash就可以。激活之后,我们就可以继续使用了!
conda init bash
同样的方法,我们也可以用在Windows上,比如换电脑了,想把旧电脑上conda环境迁到新电脑上,同样也可以这样,在windows上还能更方便的添加环境变量,亲测有效。可以用移动硬盘来装旧电脑里的conda,这样你甚至可以拥有一个移动版的深度学习环境!