所以我正在使用微服务 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
