PyCharm 远程开发调试

67

VS code与PyCharm在远程开发调试时的区别

上次已经介绍了VS code的远程开发配置方法,而在PyCharm中的远程调试方法则有所不同,PyCharm其实是将本地的源码自动上传到远程机器上再运行,而远程机器的文件却并不会自动同步到本地,也就是说这是一个单向的同步,在某些时候这种“不透明”可能会造成一些问题。

比如说,你的代码里生成了一个文件(例如模型权重),该文件会生成到远程机器里,并不会同步到本地,你在PyCharm里也是看不到的,但是当你去使用该文件时,因为代码是在远程机器上执行的,却又可以正常调用。

所以,VS code 与 PyCharm 虽然都能利用远程机器运行本地代码,但是他们的理念、使用场景却大不相同:VS code是利用远程机器进行全天候的开发,完全抛开本地机器的限制;而PyCharm只是利用远程机器进行调试,是在有额外的性能或者环境需求时的补充、辅助。

Remote interpreter using SSH

官方的配置教程:点这里

官方的教程已经比较详细,但在我的使用过程中遇到还是遇到了一些小的问题,我觉得这些还是记录一下比较好。

使用conda环境

与VS conda不同,PyCharm并不会扫描识别远程机器上的conda环境,所以无论是用直接安装的python还是使用codna创建的环境都必须手动选择python可执行文件。

更改项目根目录

文件同步是这里面最令人头疼的问题,大多数的设置都在Tools->Deployment菜单里,在这里可以手动同步远程机器上的文件,还可以通过Browse Remote Host浏览远程机器上的文件。

但是Browse Remote Host默认是以根目录/或者用户主目录作为根目录的,每次找到当前项目都比较麻烦。此时可以更改Configuration,将远程的项目设置为根目录。

需要注意的是Mappings标签中的Deployment path也要进行相应的更改,Mappings目录是一个相对于Root path的相对目录

远程SSH终端

当我们连接上远程机器后,就不再需要使用单独的SSH终端进行操作,在Tools下可以通过Start SSH session打开远程终端。