当我无法使用 PDB 时如何调试挂起的 python 代码



我有一些代码可以在本地系统上完美运行。只有当我启动它以在服务器上作为docker容器化程序自动运行时,它才会挂起并在特定行超时。我不能在那个特定的环境中使用pdb逐步完成程序,也不能在可以使用调试器的环境中重现行为。我可以从我的cloudwatch日志中看到,它正在停在那条线上并超时。

挂起的那行代码正在调用其他代码,但我不知道它挂起的确切位置。有没有什么方法可以把这行代码包装起来,让它打印出它所经历的每一步?

(作为参考,实际的服务器是一个AWS SageMaker端点,它不能通过ssh或任何东西直接访问,而超时的代码行是一个AutoGloonmodel.predict()调用。(

我想我正在寻找的可能是一个调试装饰器,或者一种自动化pdb并将其封装在函数调用中以查看其挂起位置的方法。或者任何更好的建议。

也许您可以将sagemaker本地会话与远程pdb相结合。https://pypi.org/project/remote-pdb/您需要本地会话,这样您就可以轻松地进入容器,然后通过远程pdb进行连接。

最新更新