PyCharm远程运行调试代码
本介绍了使用PyCharm进行远程debug的方法,实现本地写代码,远程服务器训练模型和调试代码的功能。
为什么要用远程运行调试?
有这么一个应用场景,你的代码需要在服务器端运行,因为运行环境安装的依赖库都在远端服务器上,而写代码的工作在本地的平台上更顺手。在此之前都是用Visual Studio Code编辑代码,然后用同步到远端服务器,再通过SSH登录服务器运行程序。这样的工作流程不仅效率低,容易出错(如果代码没同步就悲剧),而且不易debug。
难道没有一个IDE能够实现远程运行调试代码么?本着世界上比我聪明的人多了去了的原则,本人觉得一定有,但是一直没找到。直到今天偶然发现PyCharm支持远程debug,看了下网上的教程发现跟我的需求很像,于是折腾了一番,没想到真的成功了。
我的本地环境:
- Window 10 64bit
- PyCharm Professional
准备工作
首先你需要安装PyCharm Professional版,Community版是没有远程调试功能的,如果你是学生可以通过学校的edu邮箱申请免费试用,如果不是请购买正版。
PyCharm下载地址: https://www.jetbrains.com/pycharm
安装过程很简单这里就不赘述了,安装流程下一步下一步即可。
远程服务器同步配置
首先本地代码放在:
F:\Code\Sync\Detectron
服务器代码路径在:
/home/xuzhewei/code/Detectron
打开PyCharm,打开Project文件夹F:\Code\Sync\Detectron

首先在Tools>Deployment>Configuration
配置远程服务器地址:
- SFTP host: 是你服务器的地址
- Port: 是端口号
- Root Path: 是远程你期望存放代码的位置
- User name: 是远程服务的登录用户名
- Password: 远程服务器的登录密码

切换到Mappings
标签页
- Local path: 本地代码存放位置
- Deployment path on server Detectron: 服务器端存放Detectron的位置
- Web …: 这个我们用不上,是web项目需要配置
如果你还有一些文件或文件夹不想同步,那么在配置对话框的第三个tab页Excluded path
里面添加即可,可同时指定本地和远程。

上传下载文件
手动上传方式很简单,选择需要同步的文件或文件夹,然后选择 Tools>Deployment>Upload to Detectron
(这个是刚刚配置的部署名称)

比较远程和本地文件
有时候你并不确定远程和本地版本的完全一致,需要去比较看看。PyCharm提供了对比视图来为你解决这个问题。
选择Tools>Deployment>Browse Remote Host
,打开远程文件视图,在右侧窗口就能看到远程主机中的文件

选择一个你想要对比的文件夹,点击右键->Sync with Deployed to Detectron
,打开同步对比窗口,使用左右箭头来同步内容。


PyCharm 远程调试
选择File>Settings>Project>Project Interpreter
,然后在右边,点击那个小齿轮设置,如下

然后点击Add Remote
,填写主机的ssh
配置,点击下一步后会让你填写密码

然后设置你的Python Interpreter,就是你在服务器端运行的python的位置,这里默认是系统python,但是我采用的anaconda的虚拟python环境因此这里的
Interpreter
地址为/home/all/lib/anaconda2/envs/caffe2/bin/python
Sync folders
是服务器上代码放置的地址
远程调试
首先验证在服务器上运行测试代码可以成功运行
1 | cd ~/code/Detectron |
输出
1 | No handlers could be found for logger "caffe2.python.net_drawer" |
然后尝试在PyCharm远程调试

然后注意不要用py.test,应直接用python
运行

输出结果和在SSH里显示的一样

参考教程:https://www.xncoding.com/2016/05/26/python/pycharm-remote.html