Прошу прощения за словесное описание.wxPython запускает мое приложение дважды при импорте подпакета
У меня есть приложение wxPython в файле с именем applicationwindow.py
, который находится в пакете под названием garlicsimwx
. Когда я запускаю приложение, запустив вышеупомянутый файл, все работает хорошо. Тем не менее, я создал файл rundemo.py
в папке, которая содержит пакет garlicsimwx
, который также запускает приложение. Когда я использую rundemo.py
, приложение запускается, однако, когда основной импортирует подпакет garlicsimwx
, а именно simulations.life
, по какой-то причине создается новый экземпляр моего приложения (т. Е. Появляется новое идентичное окно.)
Я попытался выполнить команды один за другим, и хотя ошибка происходит только после импорта подпакета, оператор import
напрямую не вызывает его. Только когда управление возвращается к PyApp.MainLoop
, открывается второе окно.
Как это остановить?
Справедливая догадка Фрэнк, но нет; У меня есть бит 'if __name __ == '__ main __'', который вызывает мою функцию 'main()'. Фактически, эта ошибка происходит, даже если я прокомментирую эти две строки и вызывается 'main()' из 'rundemo.py'. –
@ cool-RR: У вас может быть if __name__ == "__main__", но у вас также есть вызов функции, который происходит во время импорта. Вы должны пройти через свой сценарий и заверить, что это ПОЛНОСТЬЮ def и класс, и ничего больше. –
@Frank: Извините, но не работает ли Python модуль только в первый раз, когда он импортируется? – Joril