• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

이미지가 onefile로 안들어간거 같아요

20.08.28 11:38 작성 조회수 4.13k

1

안녕하세요
강의 몇번씩 보고 있어요

pyautogui

exe만들려고하는데요

이미지가 함께 안들어가는거 같아요

onefile로 했는데요

답변 1

답변을 작성해보세요.

0

일단 pyinstaller 가 실행되는 방식을 이해하셔야 하는데.. pyinstaller 로 만들어진 실행파일은 최초 exe 실행시에 실행에 필요한 모든 파일을 임시폴더에 풀어낸 후에 실행됩니다. 이때 이 임시폴더는 실행시마다 경로가 달라집니다. 그 폴더를 우리가 접근할 수 있게 하기 위해 sys._MEIPASS 라는 변수가 선언되어 있습니다.

def resource_path(relative_path):
    try:
        # PyInstaller에 의해 임시폴더에서 실행될 경우 임시폴더로 접근하는 함수
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

따라서 위의 예시처럼 함수를 하나 작성해서 이미지에 접근해보시는것을 추천합니다.

PS. 이미지가 exe 안에 포함이 안된 경우라면 --add-data 옵션을 사용해보시는것도 추천합니다. 물론 --add-data 옵션을 사용했다하더라도 위의 함수를 사용해야 합니다.

https://pyinstaller.readthedocs.io/en/stable/spec-files.html?highlight=--add-data#adding-data-files