I have a small Python application which gets me some output with simple curses.
I want this app to run as long as the user doesn't press a specific button.
In the past I just used Ctrl-C to quit my app. And actually, that's still working here too, but apparently I can't get any input into my terminal after quitting (except KeyboardInterrupt).
I tried catching the exception and resetting the curses-settings and some other things. I can't test-run the original app on my Mac, because its using GPIO Pins but the script beneath works on my Mac and after quitting with Ctrl-C everything is fine. On the Pi its causing the same behaviour though.
Thanks in Advance :-)
import time
import curses
import threading
import random
class SomeOutputtingThing:
def start(self):
self.running = True
threading.Thread(target=self.show_values, daemon=True).start()
def stop(self):
self.running = False
def show_values(self):
stdscr = curses.initscr()
curses.noecho()
curses.cbreak()
try:
while self.running:
stdscr.addstr(0,0, "Some valuable Data i want to see: {}".format(random.randint(0,5)))
stdscr.addstr(1,0, "Some valuable Data i want to see: {}".format(random.randint(0,5)))
stdscr.refresh()
finally:
curses.echo()
curses.nocbreak()
curses.endwin()
if __name__ == "__main__":
foo = SomeOutputtingThing()
foo.start()
time.sleep(15)
foo.stop()
question from:
https://stackoverflow.com/questions/65851926/raspberrypi-shell-frozen-after-python-curses-ctrl-c 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…