PyInstaller로 UI 파일을 포함한 실행 파일 만들기

2024. 9. 9. 02:16·파이썬/PyQT
반응형

PyInstaller는 Python 애플리케이션을 단일 실행 파일로 패키징할 수 있는 도구입니다. 이때 애플리케이션에 사용되는 UI 파일(.ui)도 함께 포함시켜야 합니다. PyInstaller는 기본적으로 Python 스크립트와 직접 import된 모듈만 포함시키기 때문에, 동적으로 로드되는 UI 파일은 별도로 지정해 주어야 합니다.

UI 파일을 exe 파일에 포함시키는 방법은 다음과 같습니다:

1. PyInstaller 명령어 사용

pyinstaller --add-data "coupang.ui:." --onefile your_script.py

이 명령어에서:

  • --add-data "coupang.ui:.": UI 파일을 exe 파일의 루트 디렉토리에 포함시킵니다.
  • --onefile: 단일 실행 파일을 생성합니다.

2. 코드에서 리소스 파일 경로 처리

exe 파일 실행 시 올바른 경로에서 UI 파일을 찾을 수 있도록 코드를 수정해야 합니다.

import sys
import os

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 = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

# UI 파일 로드 시
ui_file = resource_path('coupang.ui')
uic.loadUi(ui_file, self)

이 resource_path 함수는 개발 환경과 PyInstaller로 생성된 exe 환경 모두에서 작동합니다.

3. spec 파일 사용 (선택적)

더 복잡한 설정이 필요한 경우, spec 파일을 사용할 수 있습니다.

# -*- mode: python ; coding: utf-8 -*-
a = Analysis(['your_script.py'],
             pathex=[],
             binaries=[],
             datas=[('coupang.ui', '.')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=None,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data, cipher=None)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='your_app',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=False)

이 spec 파일을 사용하려면:

pyinstaller your_script.spec

주의사항:

  • UI 파일 외에도 이미지, 설정 파일 등 다른 리소스 파일들도 같은 방식으로 포함시킬 수 있습니다.
  • 큰 프로젝트의 경우, 모든 필요한 리소스를 포함시키는 것을 잊지 않도록 주의해야 합니다.
  • exe 파일 크기가 커질 수 있으므로, 필요한 파일만 포함시키는 것이 좋습니다.

이러한 방법을 사용하면 UI 파일을 포함한 완전한 실행 파일을 생성할 수 있습니다. 실행 파일을 다른 컴퓨터에서 테스트하여 모든 것이 제대로 작동하는지 확인하는 것이 좋습니다.

저작자표시 비영리 변경금지 (새창열림)

'파이썬 > PyQT' 카테고리의 다른 글

Qtpy - QLineEdit 활용하기  (0) 2022.03.23
Qtpy - QProgressBar 활용하기  (0) 2022.03.23
'파이썬/PyQT' 카테고리의 다른 글
  • Qtpy - QLineEdit 활용하기
  • Qtpy - QProgressBar 활용하기
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (724) N
      • 상품 추천 (223) N
      • MongoDB (4)
      • 하드웨어 (16) N
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (13)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (41)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    cv2
    C#
    리뷰이관
    상품 리뷰 크롤링
    rtsp
    유니티
    스마트스토어리뷰
    codingcommunity
    codingtips
    appdevelopment
    카페24리뷰이관
    리스트
    programmerlife
    Python
    긴유통기한우유
    스크립트 실행 순서
    셀레니움
    라떼우유
    devlife
    스크립트 실행
    ipcamera
    programming101
    믈레코비타멸균우유
    learntocode
    리뷰관리
    쇼핑몰리뷰
    카페24리뷰
    list
    파이썬
    unity
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
PyInstaller로 UI 파일을 포함한 실행 파일 만들기
상단으로

티스토리툴바