背景
跑深度学习的model需要用到GPU加速,而自己电脑却是核显,无法使用GPU加速运算,需要连接到学校的服务器上运行代码。
pycharm专业版才支持服务器的连接,社区版不提供这个功能。假定已经安装了专业版的pycharm,而且服务器上的anaconda环境已经搭建完成。
一、新建SFTP
在专业版pycharm中:Tools -> Deployment -> Configuration...
![在这里插入图片描述](https://img-blog.csdnimg.cn/a0a048b396994b31b60abb9b36b2d0a2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
这时会出现下面窗口:
![在这里插入图片描述](https://img-blog.csdnimg.cn/dc6fe2e89892457bab444edf23a9b8a1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center)
因为我之前已经连接服务器了,所以有一个lab_server项,不影响我们接下来的操作。点击就"+"新建一个SFTP,并命名为demo(根据个人喜好),SFTP是为了将本地文件传到服务器上,毕竟模型是要到服务器上训练的:
![在这里插入图片描述](https://img-blog.csdnimg.cn/dc5ad1dd10d74b6fbeca5cbba4fae882.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/cc10493490504164af8a261386ee09a0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/25c0d2b6b9374b22bd61dee845d2710a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center)
点击 ==SSH configuration== 旁边的三个点,并新建SSH configuration:
![在这里插入图片描述](https://img-blog.csdnimg.cn/785659b90352490dad37eed1551fafa4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/412d5a7fa00d47a784df0c34bf0e5ce8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
==Host== 就是你服务器的ip地址,注意端口号。==User name== 就是登录服务器的用户名(一般来说学校的服务器是。多人使用的,每个人有自己的用户名和密码,用户名为root是管理员的权限了),==Password== 就是你用户名对应的密码。这些项填写完成后,点击 ==Test Connection== 按钮测试是否能连接,连接成功会出现相应的弹窗:
![在这里插入图片描述](https://img-blog.csdnimg.cn/037fa5626ab24c3dac2325f688f54472.png#pic_center)
若连接失败,就要排查ip地址,端口号,用户名和密码的正确性,并且要保证你电脑处于联网状态。除此之外,学校的服务器可能需要用内网访问,要挂上学校的VPN。
接下来要配置 ==Mappings== ,==Local path== 是你本地项目的路径,==Deployment path== 是你想上传到服务器的路径:
![在这里插入图片描述](https://img-blog.csdnimg.cn/89924a706f3447f3a50e72806940416c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_19,color_FFFFFF,t_70,g_se,x_16#pic_center)
==Exclude Paths== 是设置不想上传到服务器的文件的路径。
二、配置解释器
因为要用到服务器上的python解释器,需要配置解释器,依次进入:File->Settings->Project->Project Interpreter:
![在这里插入图片描述](https://img-blog.csdnimg.cn/ce10c64c8e6c4af5a70aa211fb1da0c8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
点击add添加解释器,如果是第一次连接远程服务器,那么你pycharm里面保存的解释器列表中就不会出现远程解释器的选项。选择 ==SSH Interpreter== 项,选择 ==Existing server configuration== ,点击旁边的"...",选择我们之前创建的demo。
![在这里插入图片描述](https://img-blog.csdnimg.cn/64d3e46aede94974be8adfbf4edbe618.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c31d8b625b604fb0ac6b8640033b6424.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
点击"OK"后,正常情况下是可以点击"Next"按钮,但是当创建的demo第一次被使用时Pycharm会提示需要将其加入"IDE setting"中,按照提示的要求来就行。我们点击"Next"后开始选择服务器上的解释器,所以需要对服务器上的文件路径比较熟。
![在这里插入图片描述](https://img-blog.csdnimg.cn/04ca624b5b7740e9906cd21667816e69.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
这里有两项需要我们完成,一个是 ==Interpreter== ,就是我们需要使用到的python解释器,一般我是用 ==anaconda== 来对虚拟环境进行管理,所以python解释器会在anaconda目录下。另外,与windows不同,linux系统下anaconda将虚拟环境的python解释器放在 ==bin== 文件夹里面。
另一个就是要完成文件映射关系,这里我不是太懂,之前在配置mappings时已经配置了文件映射关系,但是在这里再配置一遍后并不会报错。
完成文件映射,我个人习惯喜欢用 ==sftp== 软件直接将项目文件传送到服务器上,然后选定文件夹即可。点击"Finishi"完成配置工作,这时你可以看到服务器上虚拟环境中安装的包都可以在Package中查看到。
点击运行时会发现控制台的解释器已经更换成你服务器端的python解释器:
![在这里插入图片描述](https://img-blog.csdnimg.cn/ee6390665fba4a44b7312ab4087f944e.png#pic_center)
三、文件更新
在调试代码时难免会更改代码,要想本地代码和服务器代码保持一致,可以勾选:Tools->Deployment->Automatic Upload(always),每次修改后ctrl+s保存代码时会自动更新到服务器上。
![在这里插入图片描述](https://img-blog.csdnimg.cn/18b51a8698bc4758aa1383a2c7c00001.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_14,color_FFFFFF,t_70,g_se,x_16#pic_center)
可以在"File Transfer"处查看文件上传的历史记录:
![在这里插入图片描述](https://img-blog.csdnimg.cn/9f37151b0564489692369b6ac665c148.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6bq76KGj5bim5oiR5Y675LiK5a2m,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
若是无法自动上传,也可以用sftp软件连接服务器,直接把文件拖进去也可以。
三、错误记录
点击运行报错无法在服务器找到对应文件,但是确实已经成功上传了项目文件,可能是因为你多个项目用了同一个服务器的虚拟环境,可以在pycharm的配置解释器的地方删除多余的解释器即可。