代码之家  ›  专栏  ›  技术社区  ›  Ram Rachum

有没有一种方法可以调试在“多处理”环境下运行的Python代码。过程`?

  •  4
  • Ram Rachum  · 技术社区  · 14 年前

    我希望能够使用 multiprocessing 包裹

    我记得大约一年前我在寻找解决方案,但没有找到。我被告知只需要做大量的日志记录,但这当然是一种低劣的方法。也许有人同时想出了一个解决方案?例如,使新生成的进程与调试器连接的某种机制?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Paweł Polewicz    14 年前

    您可以手动启动需要调试的流程,而无需在此流程上使用流程接口。

        2
  •  1
  •   Community CDub    8 年前

    你可能会发现 WingIDE 有用的它的调试器非常好,它甚至支持调试远程进程,只需对正在调试的代码进行少量的插入。这不是免费的,但值得付出代价。(我与Wingware没有任何关系,只是一个满意的客户……)

    要在Wing中启用远程调试,需要复制该文件 wingdbstub.py 将其导入到与要调试的应用程序相同的目录中,并在要开始调试的代码中导入它。(本手册对这一点进行了相当全面的介绍。) WingIDE docs .)

    如果你 this example 并修改 myfunc() 方法如下所示:

    def myfunc(conn, commands):
        import wingdbstub
        # ... remainder same as original example
    

    您应该能够启动WingIDE,并在启动后立即设置断点 import 行,然后从控制台启动示例脚本。它应该自动连接到Wing,并在断点处停止。

    你可能会发现 this post 如果在调试连接正常工作时遇到任何问题,这将非常有用。(WingIDE文档在解决连接问题方面也做得不错。)

        3
  •  0
  •   Marinus    14 年前

    不要通过进程启动函数或类,只需直接调用它并像通常那样进行调试。