터미널에 python main.py
을 사용하여 호출하는 python 스크립트가 있습니다. 그것은 제대로 실행하고 GUI를 닫으면 종료되는 Qt-GUI를 시작합니다.Python 스크립트가 제대로 종료되지 않습니다.
그러나 마지막 디버그 메시지 인 "out and out"이 인쇄되지만 스크립트 자체가 종료되지 않는 경우가 있습니다. 어느 CTRL + C, CTRL D + 도 CTRL + Z는 임의의 실행에 영향을 미친다. 마치 예외가 프로그램 내부에 던져 질 때 (그리고 GUI에 의해 잡힐 때) 이런 일이 일어나는 것처럼 보입니다.
GUI 자체에서 발생하지 않기 때문에 디버깅하는 방법을 모르겠습니다. 이것을 디버깅하고 내가 뭘 잘못했는지 알아 내려면 어떻게해야합니까?
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
form = MainGui()
form.show()
app.exec_()
print "over and out"
편집 : 마지막에는 여전히 활성화 된 스레드가있는 것처럼 보입니다. 그러나, 나는 explicetely 스레드 (나는 Qt가 내부적으로 무엇을하는지 모르겠다.)로 작업하지 않는다. 마지막에 실행중인 모든 스레드를 볼 수있는 방법이 있습니까?
EDIT2 : 오 마이 f * ing 신. 이 솔루션은 단순히 시스템을 재시작했습니다. 여하튼 나의 OS는 약간의 미친 물건을했고 스크립트가 종료되는 것을 막았다.
문제를 확실하게 재생하는 비교적 작은 테스트 케이스를 만들 수 있습니까? 아주 자주이 작업을 시도하면 직접 솔루션으로 연결되거나 문제를 격리 할 수 있습니다. – ekhumoro