[python] AttributeError: module 'sys' has no attribute '_MEIPASS'

[python] AttributeError: module 'sys' has no attribute '_MEIPASS'

enter image description here

[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 댓글