2015-01-17 9 views
1

Windows 7 OS에서 Canopy를 실행하는 Python 2.7에서 무한 루프를 중단하는 방법을 모르겠습니다. Ctrl + C가 작동하지 않습니다. "Run"메뉴의 "Interrupt Kernel"도 절대로 작동하지 않습니다. 리눅스 (우분투)에서 keyboardinterrupt ctrl + c는 잘 작동하지만 Windows에서는 작동하지 않습니다.Enthought Canopy 환경에서 파이썬의 무한 루프를 방해하는 방법은 무엇입니까?

우연한 무한 루프를 막을 수있는 유일한 방법은 "실행"메뉴에서 "재시동 커널"옵션을 사용하는 것입니다. 불행히도 그것은 내가 원하지 않는 모든 작업 변수를 잃어버린다는 것을 의미합니다. MATLAB에서 Ctrl + C는 정상적으로 작동했습니다.

필자는 Python에서 keyboardinterrupt 문제에 대해 비슷한 질문을했지만 Enthought Canopy 환경을 사용하지는 않습니다.

도움을 주시면 감사하겠습니다.

답변

1

일반적으로 루프에서 코드가 OS 서비스를 호출하는 경우 Ctrl-C는 무한 루프를 깨기 위해 작동합니다. MATLAB에 대한 여러분의 의견을 감안할 때 루프가 계산 전용이라고 생각합니다. 이것을 쉽게 해결할 수있는 방법은 루프 내부의 키 누르기를 확인하는 것인데, 이는 자신 만의 인터럽트 코드를 정의 할 수있게 해줍니다. Activestate에는 Windows 또는 Unix 계열 OS 모두를위한 멋진 코드가 있습니다. http://code.activestate.com/recipes/134892-getch-like-unbuffered-character-reading-from-stdin/