我似乎無法讓Python curses模塊顯示顏色,而ncurses C庫工作正常。這是一個簡單的腳本,應該可以工作:Python詛咒不顯示顏色,而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()
沒有幫助。
我在XTerm(312)上測試了它,它有一個黑色的bg和urxvt v9.20,它有一個白色的。我在Debian jessie上,使用bash和Python 2.7。
我運行了一箇舊C腳本,我使用了ncurses,它很好地顯示顏色,所以我假設我做錯了什麼或者python庫有什麼問題。我下載了一個名爲colortest-python的軟件包,它也能夠顯示顏色,儘管它不會使用curses來實現(僅用於測試終端是否能夠顯示顏色)。
沒有幫助。 [完整腳本](http://pastebin.com/70PJJN81)。其他顏色對似乎不工作 – Alex
什麼輸出curses.has_colors()? –
哦,現在我明白了,你不直接使用顏色,你需要用curses.init_pair(1,curses.COLOR_RED,curses.COLOR_WHITE)聲明一個對,然後使用你在第一個參數中使用的int值curses.color_pair(1)。這種方式應該工作 –