所以我使用微服务Python包nameko,它使用eventlet
运行服务并在导入时调用eventlet.monkey_patch()
。
我已经破译出正是这段代码阻止了通过ipdb
进行的任何调试尝试。 ipdb
控制台显示在终端中,但我无法输入任何内容,并且必须关闭整个终端 session 才能退出该进程。
如何将 ipdb
与此功能一起使用?
编辑:此问题仅似乎仅在 Docker 容器内发生。
最佳答案
抱歉,没有方便的解决方案,目前您最好的选择是在使用 ipdb 时跳过 docker(您可以从 docker 提取文件系统镜像并在另一个虚拟化中运行它,例如 qemu、Virtualbox、systemd-nspawn)。请参阅https://github.com/larsks/undocker寻求帮助。
其他可以尝试的方法(可能不起作用,请分享结果):
- 将 eventlet 更新到 github master
pip 安装 https://github.com/eventlet/eventlet/archive/master.zip
关于python - eventlet.monkey_patch() 破坏了 docker 容器中的 ipdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842877/