Django регистрируется в окне wxpython?

Я пишу утилиту для запуска процесса сервера django, который выводит свои журналы в TextCtrl в окне wxpython. К сожалению, несколько разных подходов привели к странным проблемам, когда операционная система (в данном случае OSX) приводила к сбою программы с жалобами на «Недопустимую инструкцию» после нескольких успешных записей в журнале.

В настоящее время я делаю это, реализуя подкласс logging.Handler, который отправляет события в wx, содержащие записи журнала, которые будут отображаться в окне. Есть ли лучший подход?

Спасибо!


person Taylor Nelms    schedule 24.01.2019    source источник


Ответы (1)


wxPython требует, чтобы он был основным потоком, поэтому я предполагаю, что это вероятная основная причина вашей проблемы. У вас есть несколько хороших подходов, которые можно попробовать.

Сначала вы можете запустить серверный процесс Django как поток из вашей программы wxPython. Затем вы можете использовать потокобезопасные методы wxPython (wx.CallAfter, wx.PostEvent) для связи с пользовательским интерфейсом.

Или вы можете просто запустить Django отдельно и войти в файл. Затем запустите wxPython и заставьте его в основном следить за файлом журнала.

person Mike Driscoll    schedule 28.01.2019
comment
Спасибо! Да, в итоге я отключил специализированное ведение журнала Django, которое направляло события моему обработчику ведения журнала wx. Выполнение этой команды wx.CallAfter все исправило! - person Taylor Nelms; 28.01.2019