【问题标题】:Why python debugger always get this timeout waiting for response on 113 when using Pycharm?为什么 python 调试器在使用 Pycharm 时总是得到这个超时等待 113 的响应?
【发布时间】:2014-12-18 01:45:22
【问题描述】:

Bigger image

尤其是我运行的代码可能运行了很长时间(大约 10 分钟),然后到达断点。 python调试器总是向我显示这种错误“超时等待113响应” 我在屏幕截图中用红色圈出了它们。

我使用 Pycharm 作为我的 python IDE,它只是 Pycharm IDE 的问题吗?还是 Python 调试器问题? 如果不推荐Pycharm,谁能给我更好的IDE,可以高效调试。

【问题讨论】:

  • 根据这张截图很难看出。能否提供回溯和代码示例?
  • 其实如果你把图片拖到新窗口,它会变大。代码在这里不重要,我只是想知道为什么IDE中的调试器会失败。

标签: python python-3.x pycharm


【解决方案1】:

几个月前我也发生过类似的事情,结果发现我在 __repr__() 中对堆栈中的变量进行了非常慢的操作。当 PyCharm 遇到断点时,它会抓取当前范围内的所有变量并在它们上调用 __repr__。这是一个演示这个问题的娱乐:

import time

class Foo(object):

    def __repr__(self):
        time.sleep(100)
        return "look at me"

if __name__ == '__main__':
    a = Foo()
    print "set your breakpoint here"

PyCharm 也会调用__getattribute__('__class__')。如果您有一个 __getattribute__,那么您的行为不端也会让您大吃一惊。

这可能不是发生在你身上的事情,但也许值得考虑。

【讨论】:

    【解决方案2】:

    就像你在 Windows 上一样,为了调试这些和大多数东西,我使用了旧的 PythonWin IDE: 这个 IDE + Debugger 与被调试的东西在同一个进程中运行!

    这样,与真实对象直接接触,例如在简单的交互式 shell 中的pdb,但具有可用的 GUI,在大多数情况下是一个很大的优势。这样就没有通过 repr/pickle 等在进程之间传输大量对象的问题,没有延迟,没有超时问题等。

    如果一个步骤需要很长时间,PythonWin 也会简单地等待而不响应……(除非通过 PythonWin 系统托盘图标发出中断信号/KeyboardInterrupt)。

    PythonWin 的交互式 shell 在调试过程中也完全可用 - 在当前帧内有命名空间。

    【讨论】:

      【解决方案3】:

      这是一个老问题,但回复可能会有所帮助。

      从项目根目录中删除 .idea 文件夹。它将清理 Pycharm 的数据库,调试器将停止超时。它适用于我在 Windows 上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-30
        • 1970-01-01
        • 2019-02-26
        相关资源
        最近更新 更多