2014-04-21 2 views
0

다음 코드를 고려하십시오. 나는 이것을 실행하고 내 터미널 크기를 조정할 때 내가 줄 import rlcompleter을 제거 할 때rlcompleter를 가져 오면 터미널 크기 조정이 실패합니까?

import curses 
import rlcompleter 

def main(stdscr): 
    while 1: 
     c = stdscr.get_wch() 

curses.wrapper(main) 

이 프로그램은 KEY_RESIZE 올바르게 반환 모든 것이 잘 작동한다, 그러나

Traceback (most recent call last): 
    File "foo.py", line 8, in <module> 
    curses.wrapper(main) 
    File "/usr/lib/python3.3/curses/__init__.py", line 94, in wrapper 
    return func(stdscr, *args, **kwds) 
    File "foo.py", line 6, in main 
    c = stdscr.get_wch() 
_curses.error: no input 

말의 get_wch에 실패합니다.

무슨 일 이니?

답변

1

방금 ​​시도해 본 결과, http://bugs.python.org/issue2675의 희생자가되어 파이썬 문제보다 더 많은 readline + curses 문제가 발생합니다.

요약하면, curses 동작은 환경 변수 LINES 및 COLUMNS (readline이 설정 함)에 따라 변경됩니다.

당신이 거기에

import os 

os.unsetenv('LINES') 
os.unsetenv('COLUMNS') 

어딘가에 추가하면 충돌을 제거하고 예상대로 작동합니다. 관대 한 사람이되고 싶다면 저장/복원 =) 할 수 있습니다.

관련 문제