[python] AttributeError: module ‘sys’ has no attribute ‘_MEIPASS’
pyinstaller를 사용해서 프로그램이 실행되었을 때만 임시로 생기는 폴더를 사용할 때 _MEIPASS 라는 시스템 명령을 사용하게 되는데 pyinstaller로 만들지 않고 python으로 실행할 때는 없는 폴더이기 때문에 에러가 발생한다.
코드를 조금 수정해서 해결할 수 있다.
문제의 코드
icon_path = os.path.join(sys._MEIPASS, icon_path)
self.setWindowIcon(QIcon(icon_path))
디버깅 코드
import sys
if hasattr(sys, "_MEIPASS"):
icon_path = os.path.join(sys._MEIPASS, icon_path)
self.setWindowIcon(QIcon(icon_path))
이렇게 하면 python 으로 실행할 때는 실행하지 않고 pyinstaller로 만들어서 실행할 때는 기능이 동작 된다.
끝 :)
도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)
0 댓글