Вы сделали здесь предположение:
from twisted.internet import wxreactor
try:
wxreactor.install()
except:
print('already installed')
Предполагается, что только причина wxreactor.install()
может вызвать исключение, если wxreactor уже установлен. Я ожидаю, что предположение неверно.
Старайтесь избегать написания except:
в своих программах на Python, если только вы не планируете включать в блок голый raise
, чтобы повторно вызывать любое исключение, которое вы обрабатываете (и даже в этом случае вместо этого используйте finally
).
Когда вы ловите все исключения, вы рискуете поймать исключения, которые ваш код не может на самом деле обработать правильно. В этом случае, возможно, возникает другая проблема с установкой wxreactor. Если это так, то вы, вероятно, получаете реактор по умолчанию, когда код продолжает импортировать twisted.internet.reactor
после этой попытки.
Исключение, о котором вы сообщили:
AttributeError: 'SelectReactor' object has no attribute 'registerWxApp'
означает, что у вас не установлен wxreactor. У вас установлено SelectReactor
. Вы не можете зарегистрировать приложение wx на выбранном реакторе.
Вам необходимо диагностировать причину сбоя wxreactor.install()
, и вы не можете сделать это, подавляя и игнорируя все исключения из этого вызова.