pycharm 设置代码改变重新运行_PyCharm远程运行调试代码

本介绍了使用PyCharm进行远程debug的方法,实现本地写代码,远程服务器训练模型和调试代码的功能。

为什么要用远程运行调试?

有这么一个应用场景,你的代码需要在服务器端运行,因为运行环境安装的依赖库都在远端服务器上,而写代码的工作在本地的平台上更顺手。在此之前都是用Visual Studio Code编辑代码,然后用同步到远端服务器,再通过SSH登录服务器运行程序。这样的工作流程不仅效率低,容易出错(如果代码没同步就悲剧),而且不易debug。

难道没有一个IDE能够实现远程运行调试代码么?本着世界上比我聪明的人多了去了的原则,本人觉得一定有,但是一直没找到。直到今天偶然发现PyCharm支持远程debug,看了下网上的教程发现跟我的需求很像,于是折腾了一番,没想到真的成功了。

我的本地环境:Window 10 64bit

PyCharm Professional

准备工作

首先你需要安装PyCharm Professional版,Community版是没有远程调试功能的,如果你是学生可以通过学校的edu邮箱申请免费试用,如果不是请购买正版。

安装过程很简单这里就不赘述了,安装流程下一步下一步即可。

远程服务器同步配置首先本地代码放在: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是服务器上代码放置的地址

远程调试

首先验证在服务器上运行测试代码可以成功运行

cd ~/code/Detectron

python tests/test_spatial_narrow_as_op.py

输出

No handlers could be found for logger "caffe2.python.net_drawer"

net_drawer will not run correctly. Please install the correct dependencies.

E0531 15:09:45.234580 5116 init_intrinsics_check.cc:59] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.

E0531 15:09:45.234616 5116 init_intrinsics_check.cc:59] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.

E0531 15:09:45.234625 5116 init_intrinsics_check.cc:59] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.

Found Detectron ops lib: /usr/local/lib/libcaffe2_detectron_ops_gpu.so

...

----------------------------------------------------------------------

Ran 3 tests in 3.146s

OK

然后尝试在PyCharm远程调试

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

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

你可能感兴趣的:(pycharm,设置代码改变重新运行)