(아마 one file하면 exe파일안에 패키지화 되어 들어가기 때문인거 같습니다.. 그래서 _MEIPASS를 해줘야 되는거 같습니다..)
해결방법은 간단합니다.
해결방법
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path,'자신의 GUI 폴더', relative_path)
2022/09/17업데이트
import os
import sys
# .exe파일로 만들시 필요
def resource_path(*relative_Path_AND_File):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = getattr(
sys,
'_MEIPASS',
os.path.dirname(os.path.abspath(__file__))
)
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, *relative_Path_AND_File)
사용법
2022/09/17업데이트 개선 코드사용법
함수 복붙해서 이미지와 같이 loadUi 한후
다시 .exe파일 만들어서 실행하면 해결 됩니다.
(참고 : 함수에 '자신의 GUI 폴더'는 변경하셔야 합니다..)
추가내용
1. class 안에 넣을시 self 추가 해주시고 사용할때도 self.resource_path(내용) 으로 사용하셔야 합니다.
2. 위에 사용법 따로 파일을 만들어서 import 한다음 사용한거라 저렇게 사용해도 무방합니다.