복붙노트

[PYTHON] 디버그 모드에서의 키보드 인터럽트 PyCharm

PYTHON

디버그 모드에서의 키보드 인터럽트 PyCharm

디버깅 모드에서 PyCharm IDE (3.1)에서 키보드 인터럽트 이벤트를 보내는 방법이 있습니까?

해결법

  1. ==============================

    1.불행히도이 작업을 수행하는 간단한 방법은 없습니다. psutil과 신호 모듈을 사용해야합니다. 이 작업을하려면 psutil을 설치해야하며이를 수행하는 가장 좋은 방법은 pip를 사용하는 것입니다.

    불행히도이 작업을 수행하는 간단한 방법은 없습니다. psutil과 신호 모듈을 사용해야합니다. 이 작업을하려면 psutil을 설치해야하며이를 수행하는 가장 좋은 방법은 pip를 사용하는 것입니다.

    pip install psutil
    

    여기 A :

    while True:
        try:
            time.sleep(3)
            print "Zzzz"
            time.sleep(3)
            print("gong!")
        except KeyboardInterrupt as e:
            print "Closed by an Interrupt"
            break
    

    PyCharm에서 이것을 실행하고 있습니다. 사용중인 인터프리터에 psutils가 설치되어 있는지 확인하십시오. 당신은 확인할 수 있습니다:

    통역관을 올바르게 설정했는지 확인하십시오.

    psutil을 설치하지 않았다면, 설치 버튼을 통해 언제든지 그렇게 할 수 있습니다.

    이제는 모든 것이 설정되었으므로 프로그램을 디버그 할 수 있습니다.

    이제 우리가해야 할 일은 프로세스 ID를 얻는 것뿐입니다. 프로그램의 시작 부분에서 프로세스 ID를 얻을 수 있습니다.

    그래서 우리 콘솔을 가동시켜 신호를 보냅니다.

    그리고 제대로 작동하면 while 루프가 끝나는 것을 볼 수 있습니다 :

    콘솔의 시작 스크립트에서 인터럽트를 보내는 함수를 추가하여 프로세스를 간소화 할 수 있습니다.

    이 모든 작업이 끝나면 인터럽트 ()를 호출하여 프로세스에서 키보드 인터럽트를 호출하면됩니다.

    귀하의 질문에 대한 답변이되기를 바랍니다.

  2. ==============================

    2.PyCharm Stop 버튼은 이제 디버그 모드와 실행 모드에서 SIGINT를 보냅니다. SIGINT가 프로그램을 종료하지 않으면 정지 버튼은 신호를 SIGKILL로 변경합니다. 또한 아이콘을 두개골 모양으로 바꿉니다.

    PyCharm Stop 버튼은 이제 디버그 모드와 실행 모드에서 SIGINT를 보냅니다. SIGINT가 프로그램을 종료하지 않으면 정지 버튼은 신호를 SIGKILL로 변경합니다. 또한 아이콘을 두개골 모양으로 바꿉니다.

  3. ==============================

    3.이것은 PyCharm의 버그입니다. 참조 : http://youtrack.jetbrains.com/issue/PY-4840

    이것은 PyCharm의 버그입니다. 참조 : http://youtrack.jetbrains.com/issue/PY-4840

    키보드 인터럽트는 SIGINT입니다. 유닉스 시스템에서는 명령 줄로 가서 다음을 수행 할 수 있습니다.

    $ kill -INT <pid>
    

    또는 파이썬에서 :

    import os, signal
    os.kill(<pid>,signal.SIGINT)
    
  4. ==============================

    4.Pycharm의 버그 추적에서이 문제를 조사하면서이 메시지를 보았습니다. https://youtrack.jetbrains.com/issue/PY-4840

    Pycharm의 버그 추적에서이 문제를 조사하면서이 메시지를 보았습니다. https://youtrack.jetbrains.com/issue/PY-4840

    Pycharm 3 버전을 사용하고 있다면이 방법이 도움이 될 것입니다.

    추적기의 주석 중 하나 : '실제로 Ctrl + C가 실행중인 스크립트를 중지한다는 사실을 알았지 만 실행 중일 때 먼저 콘솔에 문자를 써야합니다. 콘솔 창을 클릭하고 아무 키나 누른 다음 Ctrl-C를 누릅니다. 즉, GUI 프레임이 포커스를 얻는 문제처럼 보입니다. '

  5. from https://stackoverflow.com/questions/22913490/keyboard-interrupt-in-debug-mode-pycharm by cc-by-sa and MIT license