파이썬

Pyinstaller , PyQt Ui 파일 포함해서 Build 하기

LEEHANDS 2021. 6. 21. 12:20
반응형

QT Designer 를 사용하여 Python 프로그래밍을 할수있다.

이때 Ui 파일로 존해하는 GUI 윈도우를 Import 하지않으면 실행파일이 제대로 동작하지 않는다.

원리는 잘 모르겠지만 아래와 같이 따라하면 ui 파일을 같은 위치에 놓지않더라도 실행할 수 있다.

 

일단 Python code 상단에 아래와 같이 추가한다.

 

import sys
import os

def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)
    
form = resource_path('exe.ui')
form_class = uic.loadUiType(form)[0]

<stackoverflow> 에서 참고한 코드이다.

 

이렇게하고, 컴파일(빌드)할때 사용하는 파일  Spec 파일을 수정해야한다.

일단 한번 Compile 하면 spec 파일이 만들어진다.

 

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None

added_files = [('exe.ui','.')]	// ui 포함

a = Analysis(['main.py'],
             pathex=['D:\\Leehands\\git\\python_usb\\project\\exe'],
             binaries=[],
             datas=added_files,  // added_files 추가
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],

위와 같이 하면 거의다 완료된 것이고

편집된 Spec 파일로 Compile 을 해보도록 하자.

 

pyinstaller --onefile main.spec

 

 

참고 사이트 : https://editor752.tistory.com/140

반응형