23

ipdb.set_trace()コードにブレークポイントを設定する必要があるときはいつでも使用します。現在、を使用して作成したプロセスで使用しようとしていmultiprocessingますが、コードが停止している間、デバッグを続行するために何も入力できません。私のstdin指示を適切に得る方法はありますか?

理想的には、フォークされたプロセスがデバッグのために停止するたびに新しいコンソールが開くことを想像したいと思いますが、これは不可能だと思います。

4

2 に答える 2

12

デバッグのために、コードを変更してmultiprocessing.dummyを使用することができます。この方法では、フォークは行われず、スレッドで動作し、デバッグが容易になります。

後で(バグがつぶされた後...)マルチプロセッシングに戻すことができます

multiprocessing.dummy - multiprocessing と同じ API を提供する必要があるため、簡単に変更できます...

于 2016-02-14T21:19:03.130 に答える
3

How to attach debugger to a python subprocess? によると 、http://winpdb.orgmultiprocessingはデバッグをサポートしています。

柔軟性を高めるためにもっと多くの作業を行いたい場合は、https://gist.github.com/csabahenk/6497709に興味深いアイデアがいくつかあります(ここに含めるには長すぎます)。

于 2016-02-19T07:02:18.870 に答える