tutorial script programa ejecutar desde cómo consola como archivos archivo python curses

script - Setupterm no pudo encontrar el terminal, en el programa Python usando curses



python curses (4)

Debe establecer las variables de entorno TERM y TERMINFO , de esta manera:

export TERM=linux export TERMINFO=/etc/terminfo

Y, si su dispositivo no tiene este directorio ( /etc/terminfo ), hágalo y copie la base de datos terminfo.

Para las terminales "linux" y "pcansi" puede descargar la base de datos:

Estoy tratando de obtener un script de curses simple para ejecutarse usando Python (con PyCharm 2.0)

Este es mi guión:

import curses stdscr = curses.initscr() curses.noecho() curses.cbreak() stdscr.keypad(1) while 1: c = stdscr.getch() if c == ord(''p''): print("I pressed p") elif c == ord(''q''): break curses.nocbreak(); stdscr.keypad(0); curses.echo() curses.endwin()

Cuando ejecuto esto desde mi IDE (PyCharm 2) obtengo el siguiente error:

_curses.error: setupterm: could not find terminal Process finished with exit code 1

Si ejecuto el script desde bash, simplemente quedará bloqueado en el bucle while y no reaccionará al presionar p o q.

Cualquier ayuda sería apreciada.


Encontré esta pregunta al buscar ejemplos porque también estoy aprendiendo a usar curses, por lo que no sé mucho sobre eso. Sé que esto funciona aunque

import curses try: stdscr = curses.initscr() curses.noecho() curses.cbreak() stdscr.keypad(1) while 1: c = stdscr.getch() if c == ord(''p''): stdscr.addstr("I pressed p") elif c == ord(''q''): break finally: curses.nocbreak(); stdscr.keypad(0); curses.echo() curses.endwin()

También agregué el intento: finalmente: para asegurarme de que el terminal tenga su apariencia original, incluso si algo simple sale mal dentro del bucle.

Debe usar el comando addstr para asegurarse de que el texto se mostrará dentro de la ventana.


Estaba teniendo el mismo problema. Consulte Programación de cursas con Python - Iniciar y finalizar una aplicación de cursas .

Hay una función curses.wrapper() que simplifica el proceso de inicio / finalización de una aplicación de curses.

Aquí está el ejemplo del documento de Python:

from curses import wrapper def main(stdscr): # Clear screen stdscr.clear() # This raises ZeroDivisionError when i == 10. for i in range(0, 11): v = i-10 stdscr.addstr(i, 0, ''10 divided by {} is {}''.format(v, 10/v)) stdscr.refresh() stdscr.getkey() wrapper(main)


Vaya a la configuración de ejecución / depuración (la que está junto al botón de ejecución Pycharm). Se adhiere a la terminal emular en la consola de salida. Entonces podrás ejecutar tu programa con el botón de ejecutar.