2010-03-17 5 views
9

나는 마지막 명령으로 plt.show()을 사용하는 파이썬 스크립트를 가지고 있습니다. 그것이 실행될 때, IDLE은 마지막 명령 후에 멈 춥니 다. 나는 이미지를 얻지 만 프롬프트를 다시받지 못한다.IDLE에서 Python 프로그램 실행을 중지하는 방법

다른 스크립트에서 나는 보통 ctrl-c을 사용하여 프로그램을 중단하지만 (때로는 즉시 작동하지 않음) plt.show() 프롬프트를 다시 표시하려면 어떻게해야합니까? Ctrl-c이 작동하지 않습니다 ...

다른 방법으로 프로그램을 중지 할 수 있습니까?

차이점이 있으면 Windows에서 IDLE입니다.

+2

일부 옵션은 다음과 같습니다 : http://stackoverflow.com/questions/1219394/ – bernie

+0

'Ctrl + Pause | Break'? –

답변

4

Windows에서 사용할 때 IDLE 및 matplotlib에서이 문제가 발생했습니다. 나는 정확한 원인을 모르지만, Ctrl-c를 두 번 누르면 일반적으로 나를 위해 일했다. 그것이 당신을 위해 작동하지 않는다면, 화면 대신 파일에 직접 플롯을 쓰는 대신에 일반 해석기를 사용할 수 있습니다.

IDLE이 일반적인 Python 스크립트 또는 인터프리터 세션처럼 동작하지 않는 경우가 많습니다. 이 때문에 나는 보통 IDLE을 피합니다.

+0

대신 무엇을 사용합니까? – greye

+0

불행히도 Windows의 옵션은 좋지 않습니다. 대화 형 인터프리터를 직접 사용합니다 (cmd.exe가 좋지 않음에도 불구하고). gvim에서 Python을 호출하여 스크립트를 실행합니다. 많은 수의 편집자와 IDE가 Python을 직접 호출 할 수 있으며 그 중 많은 수가 http://wiki.python.org/moin/IntegratedDevelopmentEnvironments에 나열되어 있습니다. iPython은 IDLE의 동일한 문제로 고통을 겪을 수 있지만, matplotlib 작업을 수행하는 방법에서 벗어날 것입니다 (결코 사용하지 않기 때문에 그렇게 약속 할 수는 없습니다). –

2

plt.show()을 사용하면 python 하위 프로세스가 GUI 툴킷의 이벤트 루프에 들어가고 이벤트 루프가 종료 될 때까지 차단됩니다. 그것이 끝나면 프롬프트가 다시 나타납니다.

TkAgg 백엔드를 사용하는 경우 Ctrl + C를 누르면 그림 위로 마우스를 이동해야합니다. 그러면 이벤트 루프가 중지됩니다. (Tkinter의 단점은

또는 IdleX은 EventLoop.py 확장을 사용하여 IDLE로 Matplotlib을 지원합니다. plt.show()을 사용하지 않고도 그림을 표시하고 상호 작용할 수 있습니다. 숫자를 생성하기 전에 plt.interactive(True)을 설정하십시오.

5

Ctrl 키 + F6 (다시 시작 쉘)

또는 쉘 -> 다시 시작 쉘

1

I 캐노피 파이썬 편집기에서 동일한 문제가 있고, 나는 CTRL+. ("점"버튼을 파이썬 세션을 방해 할 수 있었다). 희망이 도움이된다거나 비슷한 일을 할 것입니다.