Ответ Джеймса хороший, и я проголосовал за него, но я также рассмотрел бы попытку разделить уровни логики и представления моей программы. Держите проклятия частью тонкого слоя поверх библиотеки и напишите простой драйвер, который вызывает правильные процедуры для воссоздания ошибки. Тогда вы можете погрузиться и сделать то, что необходимо.
Другой способ, о котором я могу подумать, - это создать функцию с именем debug
или что-то такое, что возвращает вас на обычный экран и вызывает pdb. Затем вставьте его перед кодом, вызывающим исключение, и запустите вашу программу. Что-то вроде
def debug(stdscr):
curses.nocbreak()
stdscr.keypad(0)
curses.echo()
curses.endwin()
import pdb; pdb.set_trace()
Очевидно, это похоже на то, что делается с помощью функции curses.wrapper
. Это кратко упоминается в http://www.amk.ca/python/howto/curses/.