pycharm如何远程断点调试,ssh连接,自动同步代码

前言

在python开发过程中,特别是类似爬虫这种,linux环境和win环境相差很大的这种情况,我们其实是很希望能在win电脑上,通过pycharm远程断点调试,linux服务器上运行的代码,并使用的是linux服务器的python解释器,还要是实际是在linux上运行的,这次它来了,跟着我逐步配置使用。也是躺坑过来的经验

通过SSH远端调试你的python项目

通过SSH登陆连接你的远端python解释器

  • 找到settings——Project:your_project_name——Python interpreter,点击下拉框,点击“Show All”在这里插入图片描述

  • 点击左上角“+”号,点击On SSH
    在这里插入图片描述

  • 选择“Existing”,在点击“…”,打开SSH Configurations
    在这里插入图片描述

  • 在SSH Configurations中,先左上角点击“+”号,添加一个配置,然后右侧输入host,为你的远程服务器的host,然后对应的username和password,然后记得勾选上save password,不然重启pycharm会需要重新输入。然后点击“TestConnection”测试一下连接。确认连接正常后点击OK
    在这里插入图片描述

  • 随后页面直接点击Next会有提示,直接点击“Move”把配置移到IDE设置内即可,然后再点击Next
    在这里插入图片描述

  • 此时pycharm会自动测试一下连接是否能正常使用命令和相应权限情况,测试完后,点击Next即可。
    在这里插入图片描述

  • 随即选择“Virtualenv Environment”,勾选“Existing”,点击"…",然后选择你的需要项目运行的在linux上的python环境的路径,注意,如果是使用了conda之类的环境管理,一定要找到对应envs里的python环境
    在这里插入图片描述

选择你的远端服务器代码自动同步目录

  • 点击Sync folders右侧的文件夹图标,打开目录选择框

注意这里是两个路径:

  • Local Path是你项目的本地路径,到时候会自动同步这个路径下的项目文件到服务器对应的远端目录中,
  • Remote Path是你远端服务器存放该项目的路径,我是创建了个路径,用的/home/python_debug,然后点击ok
    在这里插入图片描述
  • 在返回到之前配置页面后,确认一下路径,还有是否有勾选“Automatically upload project files to the server”这个很重要,这样可以在调试前,代码默认同步到我们指定的目录,确保了代码的一致性。随后点击“create”
    在这里插入图片描述

测试和查看你是否配置成功

  • 随后在Python interpreters页面就可以看到新加了一个Remote Python然后点击一下“Test Connection”,右侧出现Connected就表示连接上了。点击OK在这里插入图片描述
  • 查看一下解释器下的依赖库是否和线上的一致,抽查一些即可。
    在这里插入图片描述
    自此远程项目断点调试配置设置完成

开始你的远端断点调试

查看文件同步记录

在左侧File Transfer中,会有你本地代码同步到远端目录的记录,在初次完成配置会同步一次,随后每次运行代码前会同步在这里插入图片描述

开始断点调试

通过console查看,所有的调试前,有一条指令
在这里插入图片描述

/root/miniconda3/envs/scrapyd/bin/python /root/.pycharm_helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client localhost --port 34434 --file /home/python_debug/debug.py 

其中最重点的就是pydevd.py这个文件,顺便这里科普一下:

pydevd.py 是 PyDev 包中的一个 Python 调试器模块,用于支持 Python 代码的调试。PyDev 是一个开发工具,它提供了 Python 开发和调试的功能,通常与集成开发环境(IDE)一起使用,最常见的是与 Eclipse 集成。这个调试器模块负责启动调试器并与调试工具(如 PyCharm)建立通信,以便您可以在代码中设置断点、单步执行代码并查看变量的值,以帮助诊断和解决问题。

pydevd如果要自行去配置,会稍显复杂,这边通过pycharm完善的功能机制,就可以实现了这一点。
对于断点的情况,大家就自行测试吧。

验证是否运行在服务器的环境

一开始我是怀疑是否只是引用了服务器的解释器,但代码还只是本地运行,特此我做了个测试,也就是通过一个简单的ip地址访问,通过http://httpbin.org/get网站,查看运行后的反馈的ip是否为服务器的ip如果是,那么我就确认其是运行在服务器上面的。对此大家可以简单写个requests去测试,这边因为个人是scrapy的项目,用的是scrapy,对于简单测试有点繁琐,所以大家还是自行测试一下吧。

总结

  • 通过以上配置后,我就可以通过本地win电脑pycharm远程断点调试我linux服务器上面的代码,并且代码是实时同步的。对于爬虫开发是非常方便的,因为我遇到的问题就是,国内ip无法使用国外代理,只能在服务器上面调试,但在linxu服务器上又没有桌面端,无法断点调试,只能多打印调试信息。对此,这个方法是非常实用的

  • 另外,网上很多说还要配置Deployment那个东西,我一开始也是看了别人文章去配置的,但在你知晓原理后,其实根本没必要,有些文章就是喜欢做多余工作

项目代码自动同步

可以到linux服务器上面/home/python_debug目录,也就是上面我们刚设置的目录中查看相应的代码情况,代码都是自动同步上来的
另外,你还可以试试修改一下本地,然后启动一下调试,看看远端是否有实时同步

对于关闭远端调试

我个人是换了个python解释器就当关闭了

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值