Другая вещь, которую нужно сделать, это проверить каждую библиотеку, которую вы хотите использовать, и посмотреть, возможно ли обойтись без использования их основного mainloop - вам придется создать mainloop самостоятельно, который позаботится о вызове «execute pending events» в каждом из тогда. Так как вы пишете свой основной цикл, это путь.
ЕСЛИ нет документированного способа сделать это, вам следует проверить источник другой библиотеки и повторно внедрить ее основной цикл внутри вашей - даже если только для целей проверки концепции. И откройте запрос feaure для проекта «kivy», чтобы иметь возможность использовать его без основной петли.
Ах, проверяя документы по kivy, я вижу, что вы можете легко унаследовать их базу событий и включить ее в свой основной цикл:
http://kivy.org/docs/api-kivy.base.html - твой счастливый день.