Python HTTP debuger
我想设置一些调试命令(如import ipdb; ipdb.set_trace()),它将在jupyter中运行调试器(我必须运行HTTP服务器). 上下文:我有一个由调度程序处理的长时间运行的任务(不是交互模式).我希望能够以同样的方式运行它来调试这样的任务. 最佳答案
与您在此处的想法相反,您并不需要在“调试会话”中运行代码来使用远程调试. 请尝试以下方法: >在Python环境中为“分离”代码安装pydevd:
>在该代码中的地方,否则你将使用pdb.set_trace,写
现在,只要您的代码遇到pydevd.settrace指令,它就会尝试连接到您的调试器服务器. 然后,您可以从Eclipse PyDev或Pycharm中启动调试器服务器,并将“跟踪”进程连接到您准备好进行调试.阅读here了解更多详情. 当然,由您决定在连接超时的情况下要做什么 – 您可以让您的进程在循环中永远等待调试器,或者在某个时刻放弃.这是一个似乎对我有用的示例(在远程Linux机器上运行服务,通过SSH与远程端口转发连接,通过Windows下的Eclipse PyDev启动本地调试服务器)
但是,在启用端口转发之前,您似乎应该启动本地调试服务器.否则settrace无限地挂起,显然相信它已经“连接”了,而实际上并没有. 似乎有一个名为rpcpdb的小项目具有类似的目的,但是我无法开箱即用,因此无法评论太多(我相信在IDE中单步执行代码会更方便无论如何). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |