eventlet.monkey_patch() 破坏 docker 容器中的 ipdb

eventlet.monkey_patch() breaks ipdb in docker container

所以我正在使用微服务 python 包 nameko,它使用 eventlet 运行服务并在导入时调用 eventlet.monkey_patch()

我已经破译出正是这段代码阻止了通过 ipdb 进行的任何调试尝试。 ipdb 控制台显示在终端中,但我无法输入任何内容,必须关闭整个终端会话才能退出进程。

卡住的控制台看起来像:

如何使用 ipdb 这个功能?

编辑:这个问题 似乎发生在 docker 容器内。

抱歉,没有方便的解决方案,目前您最好的选择是在使用 ipdb 时跳过 docker(您可以从 docker 中提取文件系统映像并在另一个虚拟化中 运行,例如 qemu、Virtualbox、systemd-nspawn)。请参阅 https://github.com/larsks/undocker 寻求帮助。

要尝试的其他方法(可能行不通,请分享结果):

  • 将 eventlet 更新为 github master pip install https://github.com/eventlet/eventlet/archive/master.zip

这个问题交叉发布在这里https://github.com/eventlet/eventlet/issues/361