ncurses C 라이브러리가 잘 작동하는 반면 Python curses 모듈에서 색상을 표시하는 것처럼 보이지 않습니다. 다음은 작동해야하는 간단한 스크립트입니다.파이썬 curses는 색상을 표시하지 않지만 C ncurses는 정상적으로 작동합니다.
import curses
def main(stdscr):
if not curses.has_colors(): raise
stdscr.addstr("Hello world\n", curses.color_pair(curses.COLOR_RED))
stdscr.addstr("Press any key to exit.\n")
stdscr.refresh()
while stdscr.getch() == -1: pass
if __name__ == '__main__':
curses.wrapper(main)
"종료하려면 아무 키나 누르십시오."라는 메시지가 나타납니다. 새 줄 때문에 "Hello world"가 쓰여지고 있지만 텍스트를 볼 수는 없습니다. 다양한 색상 조합을 시도했지만 흰색 (0) 만 작동합니다.
는stdscr = curses.initscr()
curses.start_color()
main(stdscr)
curses.endwin()
이 도움이되지 않았다 즉, 래퍼를 사용하지 않습니다.
흰색 검정색 bg가있는 XTerm (312) 및 흰색이있는 urxvt v9.20에서 테스트했습니다. Debian jessie에서 bash와 Python 2.7을 사용하고 있습니다.
ncurses를 사용하는 오래된 C 스크립트를 실행하여 색상이 멋지게 표시되므로 잘못된 작업을하거나 파이썬 라이브러리에 문제가있는 것으로 가정합니다. colortest-python이라는 패키지를 다운로드했는데 curses를 사용하지는 않지만 색상을 표시 할 수있었습니다 (터미널이 색상을 표시 할 수 있는지 테스트 할 때만).
도움이되지 않았습니다. [전체 스크립트] (http://pastebin.com/70PJJN81). 다른 색상 쌍이 작동하지 않는 것 같습니다 – Alex
curses.has_colors()는 무엇을 출력합니까? –
오, 이제 색상을 직접 사용하지 않고 curses.init_pair (1, curses.COLOR_RED, curses.COLOR_WHITE)와 쌍을 선언 한 다음 첫 번째 arg에서 사용하는 int 값을 사용해야합니다. curses.color_pair (1). 그 방법은 작동해야합니다 –