Aplicación Python / Kivy ejecutándose solo una vez

Estoy ejecutando un script python (3.5) muy simple utilizando Spyder IDE desde la plataforma Anaconda.

from kivy.app import App from kivy.uix.label import Label from kivy.uix.gridlayout import GridLayout from kivy.uix.textinput import TextInput class LoginScreen(GridLayout): def __init__(self, **kwargs): super(LoginScreen,self).__init__(*kwargs) self.cols = 2 self.add_widget(Label(text='Username')) self.username = TextInput(multiline=False) self.add_widget(self.username) self.add_widget(Label(text='Password')) self.password = TextInput(multiline=False, password=True) self.add_widget(self.password) class TestApp(App): def build(self): return LoginScreen() if __name__ == '__main__': TestApp().run() 

La “aplicación” funciona bien en el primer bash (aún no hace nada, solo se inicia), pero cuando bash iniciarla de nuevo, aparece el siguiente mensaje de error:

[INFO] [Base] Iniciar bucle principal de aplicación

[ERROR] [Base] No se han creado escuchas de eventos

[ERROR] [Base] La aplicación saldrá

La única forma de hacerlo funcionar nuevamente es reiniciar el kernel que se ejecuta en Spyder. Después de eso, la aplicación se iniciará una vez más (pero solo una vez).

Lo que he notado es que en la primera ejecución, la consola Ipython imprimiría mucha otra información primero, antes de la línea “Iniciar el bucle principal de la aplicación”, y en esas ejecuciones fallidas, obtengo las 3 líneas anteriores.

¿Alguien sabe lo que estoy haciendo mal? Muchas gracias por cualquier ayuda.

No es mucho el problema relacionado con Kivy. ¿Spyder probablemente guarda cosas viejas en la memoria? Intente en un intérprete simple escriba su código línea por línea. Luego cierre la aplicación y vuelva a intentar escribir TestApp().run() : las mismas tres líneas.

De esta manera verás que si las cosas antiguas (variables, clases, lo que sea que todavía esté accesible) están presentes, Kivy no te permitirá iniciar la aplicación (¿aún es un misterio para mí, tal vez debido al código relacionado con las ventanas?

Si hay algo en Spyder para vaciar cosas viejas de la memoria, configúrelo después de cada salida de Kivy y debería estar listo.

Este problema es similar a la pregunta “¿Python Spyder inicializó la aplicación Hello World Kivi una vez?” en la página web Python Spyder inicializando la aplicación Hello World Kivi una vez? , Di una respuesta allí, por favor consúltela.