python停止长途开辟和调试的办法

发布时间:2018-12-25 15:31 来源:互联网 以后栏目:长途桌面

  背景描述
  有时辰Python应用的代码在本地开辟情况运转非常正常,然则放到线上今后却出现了莫明其妙的异常,经过再三排查今后照样找不到成绩缘由,因而就在想,如果可以在办事器情况中停止单步跟踪调试就好了。
  但是,在办事器体系上装置一个IDE肯定是不实际的;经过过程SSH长途到办事器端,采取pdb停止调试固然可行,然则操作照样较为繁琐,并且也不敷直不雅。
  那么,能否可以将开辟情况中的IDE与办事器情况相连,完成应用开辟情况的IDE调试办事器情况中运转的法式榜样呢?答案是肯定的,这就是长途调试(RemoteDebug)。
  长途调试的任务道理
  长途调试的功能在Eclipse、IntelliJIDEA等大年夜型IDE中均有支撑,完成道理都基本相同,这里采取PyCharm停止解释。
  在长途调试的形式下,PyCharm(IDE)扮演办事端(Server)的角色,而运转在长途计算机上的应用法式榜样扮演客户端(Client)的角色。正因如此,停止长途调试时,须要先在本地开辟情况中设定端口并启动IDE,IDE会对设定的端口开端监听,等待客户真个连接请求;那长途计算机中的应用法式榜样又是如何与IDE建立通信连接的呢?
  针对长途调试功能,PyCharm供给了pydevd模块,该模块以pycharm-debug.egg的情势存在于PyCharm的装置途径中。长途计算机装置该库文件后,然后便可以调用pydevd.settrace办法,该办法会指定IDE地点机械的IP地址和监听的端标语,用于与IDE建立连接;建立连接后,便可在IDE中对长途在长途计算机中的法式榜样停止单步调试。
  应用PyCharm停止长途开辟和调试
  你能否常常要在Windows7或MACOSX下面开辟Python或Web应用法式榜样,然则它们最后须要在linux下面来运转呢?我们常常会碰着开辟时没有成绩然则到了正式的Linux情况下面却出现成绩。那么如何包管开辟情况跟运转情况的分歧呢?
  平日有两种办法处理。一种是应用PyCharm内置支撑的Vagrant,这个教程可以参考Vagrant开辟情况设备。不过很遗憾的是我本身在实验过程当中启动VirtualBox虚拟机时辰总是报错,临时还没处理,读者可以本身试着测试看行不可。第二种方法就是经过过程PyCharm的长途说冥器加上文件同步功能,完本钱地编辑代码->同步到办事器->经过过程长途debug来调试测试法式榜样。今朝我选择的是第二种,固然比第一种更愚蠢点。
  长途调试的功能在Eclipse、IntelliJIDEA等大年夜型IDE中均有支撑,完成道理都基本相同,这里采取PyCharm停止解释。
  长途办事器的同步设备
  长途办事器IP地址192.168.203.95,开启ssh办事,装置python版本2.7。我用一个在PyCharm外面的core-python项目来做演示。
  起首我们须要设备PyCharm通办事器的代码同步,翻开Tools|Deployment|Configuration
  点击左边的“+”添加一个安排设备,输入名字,类型选SFTP
  肯定以后,再设备长途办事器的ip、端口、用户名和暗码。rootpath是文件上传的根目次,留意这个目次必须用户名有权限创建文件。
  然后设备映照,localpath是你的工程目次,就是须要将本地这个目次同步到办事器下面,我填的是项目根目次。Deploypathonserver这里填写相关于rootpath的目次,下面那个webpath不消管先
  假设你还有一些文件或文件夹不想同步,那么在设备对话框的第三个tab页“Excludedpath”外面添加便可,可同时指定本地和长途。
  还有一个设置,翻开Tools|Deployment|Options,将”CreateEmptydirectories”打上勾,如果指定的文件夹不存在,会主动创建。
  上传和下载文件
  有几种办法可以完本钱地和长途文件的同步,手动和当文件保存后主动触发。这里我选择了手动,由于主动触发比如影响性能,PyCharm会卡,感到不爽。
  手动上传方法很简单,选择须要同步的文件或文件夹,然后选择Tools|Deployment|Uploadtosftp(这个是方才设备的安排称号)
  下载文件也是一样,选择Tools|Deployment|Downloadfromsftp
  比较长途和本地文件
  有时辰你其实不肯定长途和本地版本的完全分歧,须要去比较看看。PyCharm供给了比较视图来为你处理这个成绩。
  选择Tools|Deployment|BrowseRemoteHost,翻开长途文件视图,在右边窗口就可以看到长途主机中的文件
  选择一个你想要比较的文件夹,点击右键->SyncwithLocal,翻开同步比较窗口,应用阁下箭头来同步内容。
  下面是办事器与本地比较,那么本地文件通办事器比较,就先在PyCharm外面选择文件或文件夹,然后右键->Deployment->Syncwithdeployedto便可
  PyCharm长途调试
  在PyCharm中停止长途调试有两种选择:
  •应用长途的说冥器
  •应用Python调试办事器
  这里简单起见我只演示第一种,应用长途说冥器,也就是应用办事器下面装置的python说冥器。
  设备长途Python说冥器
  选择File|Settings,选择Project|ProjectInterpreter,然后在左边,点击那个小齿轮设置,以下
  然后点击”AddRemote”,填写主机的ssh设备
  假设之前设备过SFTP的话就直接选“Deploymentconfiguration”,然后选择方才的模板称号便可以了,由于我下面设备过就直接选模板,这里请细心看我的Python说冥器是虚拟情况virtualenv,这个要在办事器下面先创建好虚拟情况。
  开端调试
  完成以后选择这个长途的说冥器作为工程的说冥器便可,然后设备一个运转实例,打断点调试。这里我以别的一个django工程为例来解释,名字为zspace,由于用一个web工程来解释更具代表性。
  选择“Run/DebugConfiguration”,添加一个“Djangoserver”,然后设备像下面如许写
  请留意图中标出的几个点,详细甚么意思就不消多说清楚明了吧,^_^
  然后你便可以像本地调试一样打断点做调试了。这个步调太简单就不截图了,记得修改源码后同步到办事器持续下一次的调试。
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、