2017-02-03 3 views
0

Есть ли способ запустить интерактивный отладчик внутри скрученного приложения?Как отлаживать python-twisted ipdb

import ipdb;ipdb.set_trace() 

это решительность в:

7-02-03T22:25:49+0100 [stderr#error] Traceback (most recent call last): 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap 
2017-02-03T22:25:49+0100 [stderr#error]  self.run() 
2017-02-03T22:25:49+0100 [stderr#error] File "bo/OLA_test.py", line 110, in run 
2017-02-03T22:25:49+0100 [stderr#error]  self.wrapper.Run() 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/dist-packages/ola/ClientWrapper.py", line 278, in Run 
2017-02-03T22:25:49+0100 [stderr#error]  self._ss.Run() 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/dist-packages/ola/ClientWrapper.py", line 197, in Run 
2017-02-03T22:25:49+0100 [stderr#error]  self._CheckTimeouts(now) 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/dist-packages/ola/ClientWrapper.py", line 222, in _CheckTimeouts 
2017-02-03T22:25:49+0100 [stderr#error]  event.Run() 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/dist-packages/ola/ClientWrapper.py", line 67, in Run 
2017-02-03T22:25:49+0100 [stderr#error]  self._callback() 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/bdb.py", line 49, in trace_dispatch 
2017-02-03T22:25:49+0100 [stderr#error]  return self.dispatch_line(frame) 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/bdb.py", line 68, in dispatch_line 
2017-02-03T22:25:49+0100 [stderr#error]  if self.quitting: raise BdbQuit 

с Twisted == 16.6.0

ответ

0

Вам просто нужно держать стандартный ввод и стандартный вывод, прикрепленный к чему-то полезное. Удостоверьтесь, что вы не демоннизируете и не сообщите системе регистрации не, чтобы ввернуть с помощью stdio.

В качестве альтернативы вы можете использовать отладчик, не требующий stdin и stdout. Например, с pudb:

import pudb.remote 
pudb.remote.set_trace() 

Кроме того, вы не спрашивали, но многопроцессорные и Twisted обычно несовместимы. Можно заставить их работать надежно вместе с большой, большой осторожностью - но обычно есть более простые способы сделать то же самое.

+0

Спасибо за ответ, не могли бы вы объяснить, почему они несовместимы? Я использовал их togheter для обмена информацией между различными процессами, и скрипт работает с 124 дней. – summer

+0

Вы можете найти кучу вопросов по этой теме, выполнив поиск SO для «[twisted] [multiprocessing]». Вот один из них: https://stackoverflow.com/questions/11272874/is-twisted-incompatible-with-multiprocessing-events-and-queues –

Смежные вопросы