我想從一個SCons SConstruct腳本調用ct-ng(http://crosstool-ng.org/),所以基本上來自python。使用python subprocess.call()來啓動一個ncurses進程
使用下面的方法:
ret = subprocess.call(["/mnt/build/pw_build/crosstool-ng/bin/ct-ng menuconfig"], env=env_cross,shell=True)
的crosstool-NG使用ncurses的與菜單向用戶呈現:
不幸的是試圖瀏覽菜單時我得到:
使用cat命令來顯示序列使用箭頭鍵我看的時候:
:/mnt/build$ cat > /dev/null
^[OA^[OD^[OB^[OC^[OA^[OB^[OD^[OC^[OA^[OB
它看起來像是被剝可能從序列中的轉義字符。
當我從終端的命令行調用ct-ng腳本時,它正常工作,當我使用subprocess.call()調用它時,情況變糟。
我的環境包括:
- XFCE4端0.6.3
- Linux的3.13.0-32,低延時#57,Ubuntu的SMP PREEMPT週二7月15日4時08分59秒 UTC 2014 x86_64的x86_64的x86_64的GNU/Linux的
- 的Python 2.7.6
- NCURSES_VERSION 「5.9」
- GNU使3.81
- crosstool-NG版本1.19.0
是我所看到的一個已知問題?還有什麼我應該做的?
UPDATE: 感謝埃裏克..這讓我0.5F方式有..我現在可以瀏覽菜單,但它仍然留下糞便背後:
你的shell正在解釋你的擊鍵。試試「stty raw; crosstool thingie; stty cooked」。 Raw可能太過於極端,但它可能會驗證問題的原因。 – Eric
好的...試試「stty -echo」(而不是原始的) – Eric
沒有來自-echo的愛,目前嘗試用stty做一些變化... –