Я только что столкнулся с той же проблемой и нашел общую причину.Проблема со всеми опубликованными обходными решениями заключается в том, что они либо не работают для исполняемого файла, построенного на py2app (обходной путь -topmost), либо имеют серьезные побочные эффекты (iconify / deiconify работает, но вызывает все будущие модальные окна изприложение перестало быть запрещенным, включая tkMessageBox и tkFileDialog).
Проблема вызвана argv_emulation py2app, который включен по умолчанию.Эта опция помещает некоторый специфичный для OSX код события Carbon в загрузчик приложения, который можно найти по адресу dist / appname / Contents / Resources / __ boot __.py вашего встроенного пакета приложений.Мне не нужна argv_emulation, поэтому на данный момент я просто отключил эту функцию, изменив argv_emulation на False в словаре OPTIONS файла setup.py, созданного py2applet:
OPTIONS = {'argv_emulation': False}