前言:

首先,Win2Win的Pycharm远程调试是可行的,正常的SSH和SFTP配置就可以

推荐两个SSH和SFTP的配置教程:SSH、SFTP

内网穿透这个就自己找工具,我自己用的比较一般,就不推荐了

值得注意的一些关键点:

1. 根路径设置

pycharm 远程 连接 docker pycharm远程调试windows_windows

直接在对话框中输入工程所在路径就可以,只是不要忘记在路径前加斜杠/! 

比如我所有的工程都在服务器中的E:\CrackDetection文件夹中,所以我输入的根路径是/E:\CrackDetection/

2. 映射路径设置

映射中的部署路径选项设置也是同理,在对话框中浏览也是无法选择的,只能直接输入。

pycharm 远程 连接 docker pycharm远程调试windows_windows_02

 同样值得注意的是,部署路径指的是根路径的子文件夹。也就是说,部署路径如果和我一样填斜杠,就是直接浏览远程host的/E:\CrackDetection/这个文件夹。可以在部署路径中直接填上述文件夹内的填某个工程名如UNet,映射的就是该工程所在文件夹了。这一点可以浏览SFTP这篇博文,说明更仔细一点。

3. 远程工程下载

部署完成之后,需要从远程服务器下载工程文件到本地,并记得打开自动上传选项(图3左)。之后,在本地项目上编辑代码,可以自动同步到远程服务器。记住不要直接双击打开远程主机的代码(图3右)。这样每次改动后都需要手动保存,而不是自动保存。

pycharm 远程 连接 docker pycharm远程调试windows_远程服务器_03

pycharm 远程 连接 docker pycharm远程调试windows_pycharm_04

这样就配置完了!之后,在本地计算机Pycharm的 工具-->启动SSH会话 选项打开本地Pycharm的终端,cd到远程主机中工程所在路径后,就可以训练模型了!

问题

Win-Win的Pycharm远程调用确实不如Linux好用,这也是为什么JetBrain自己的工程师也说现在不支持Win。总的来说目前遇到的问题如下:

1. 无法添加远程编译器,不利于调试。读到这篇博文的同学应该都知道这个问题,所以就不展开阐述了。我想到的一个方法就是将远程服务器上的虚拟环境整体迁移到本地主机上。我用的迁移方法是这个:spec-list.txt文件迁移。迁移之后,直接在本地机器上调试,也还可以。

2. 断网停止训练。Linux有windows小工具,但是没找到Wind系统上对应的工具,这个暂时没有解决。大家有什么好的解决方法可以一起分享讨论。