본문 바로가기

CS 잡지식

pyinstaller exe 파일 run time error(Feat. cmd, -w 옵션, pyqt5,exe 파일 런타임 에러)

pyinstaller는 기본적으로 pyinstaller 프로그램 파일명.py를 하게 되면, 콘솔 창을 기본적으로 띄워 준다. 

-w 옵션을 사용하면, exe 파일 실행 시, 콘솔 창을 띄우지 않게 할 수가 있다.  ( pyinstaller [-w] 프로그램 파일명.py )

그러나 PyQt를 사용한 exe 파일의 경우 -w를 사용하여 exe 파일을 만들게 되면 Run Time 에러가 발생을 한다.

그 이유는 PyQt를 사용한 GUI 환경인 경우에만 -w를 사용할 수가 있기 때문이다. 

콘솔에서만 작동하는 exe 파일인 경우에는 반드시 -w를 제거해야 한다. 

런타임 에러

-w 옵션 이외에도 exe 파일 시 런타임 에러가 나는 이유로서, 프로그램(exe)를 실행할 때, dll이 로딩되어 있지 않은 경우이

다. 나같은 경우 AI 모델의 .hdf5 파일을 따로 올려 줬어야 했는데 올려 주지 않아서 자주 오류를 일으켰다. 

고로, 프로그램 실행 시 필요한 dll 파일(.hdf5 포함)이 실행 파일과 같은 폴더에 위치해 있는지 꼭 확인하자. 

그리고 프로그램 실행 시 오류가 나게 되면 콘솔 창은 그 즉시 콘솔창을 닫아 버리기 때문에 에러 메시지를 볼 수가 없기에 

에러의 원인을 찾기가 매우 힘들다. 

고로, cmd 창을 열어서 직접 실행을 하는 것을 권한다.

(아래 블로그들을 참조하였다) 

https://ukjong.tistory.com/185

 

pyinstaller : RuntimeError: input(): lost sys.stdin

pyinstaller를 이용해서 여느 때와 같이 작업을 하고 있었는데, 자꾸 런타임 에러가 발생했다. RuntimeError: input(): lost sys.stdin 진짜 1시간 넘게 찾은 것 같은데 이유는 -w 옵션 때문이었다. 이것은 윈도

ukjong.tistory.com

https://makejarvis.tistory.com/77