PyInstaller로 PyQt5 + PyTorch 실행파일 만들기 – 딥러닝 데스크탑 앱 완성하기
이 글은 인공지능 앱을 완성형 프로그램으로 배포하기 위한 4번째 포스트입니다. 지난 편에서 PyQt5 GUI를 통해 흔들린 이미지를 복원하는 기능을 구현했는데, 이번에는 그 코드를 하나의 실행파일(.exe)로 만들어 누구나 설치 없이 사용할 수 있도록 만드는 방법을 다룹니다.
왜 PyInstaller를 사용하는가?
일반적으로 PyQt5나 PyTorch를 사용하는 프로그램은 많은 종속 라이브러리를 포함하고 있어 설치가 복잡합니다. PyInstaller는 이러한 코드를 하나의 실행파일로 묶어주는 도구로, 파이썬이 설치되어 있지 않은 컴퓨터에서도 실행할 수 있습니다. 배포와 공유가 훨씬 쉬워지죠.
사전 준비
아래 환경을 갖추고 있어야 합니다.
- Python 3.8 또는 3.9
- PyQt5, torch, torchvision, opencv-python 등이 설치된 상태
- Windows 운영체제 (exe 빌드용)
PyInstaller 설치:
pip install pyinstaller
기본 명령어 설명
단일 실행파일을 만드는 기본 명령어는 다음과 같습니다.
pyinstaller --noconfirm --onefile --windowed gui.py
각 옵션에 대한 의미:
- --noconfirm : 기존 빌드 결과가 있어도 덮어쓰기
- --onefile : 하나의 실행파일(.exe)로 만들기
- --windowed : 콘솔 창 없이 GUI만 띄움
실행 예제 코드 주석 포함
실제 실행 코드를 주석과 함께 정리해보면 다음과 같습니다.
# PyInstaller 실행 명령어
pyinstaller \\
--noconfirm \\ # 빌드할 때 기존 파일 덮어쓰기 자동 확인
--onefile \\ # 모든 파일을 하나의 exe로 압축
--windowed \\ # 콘솔창 숨기기 (GUI 앱일 경우 필수)
--add-data \"weights/gopro_generator.pth;weights\" \\ # 모델 파일 포함
--add-data \"output/;output\" \\ # 출력 폴더 포함
gui.py # 메인 실행 스크립트 지정
주의: --add-data 옵션은 세미콜론(;)으로 구분합니다. 윈도우에서는 ;, 리눅스/mac에서는 : 사용
빌드 결과 위치
빌드가 완료되면 프로젝트 폴더에 다음과 같은 구조가 생성됩니다.
dist/
└── gui.exe # 우리가 원하는 실행파일
build/
└── ... # 빌드 중간 생성물
gui.spec # 설정 파일
이 중 dist 폴더에 있는 exe 파일만 다른 PC에 배포하면 됩니다.
실행 확인
빌드된 gui.exe 파일을 더블 클릭하면, 이전 PyQt5 앱이 그대로 실행됩니다. 사용자는 복잡한 환경 설정 없이도 이미지를 불러오고 흔들림 복원 기능을 사용할 수 있습니다.
문제 해결 팁
- ImportError 발생 시: 숨겨진 모듈을 spec 파일에 수동 추가
- 폰트나 이미지 경로 누락: --add-data 옵션으로 직접 지정
- 실행시 오류 발생: GUI 파일에 절대 경로 대신 상대경로 사용 권장
다음 글 예고
5편에서는 이 실행파일을 설치형 패키지로 포장하는 과정, 즉 NSIS 또는 Inno Setup 등을 이용하여 사용자가 더블 클릭 한 번으로 설치할 수 있도록 만드는 설치 마법사 구성법을 소개합니다.
마무리
이제 우리는 딥러닝 기반 흔들림 보정 앱을 개발하는 것을 넘어, 실제 실행파일로 만들어 누구나 사용할 수 있도록 배포할 수 있게 되었습니다. 인공지능 모델을 제품화하는 과정은 이처럼 패키징과 배포 단계를 통해 완성됩니다. 다음 글에서 설치형 프로그램으로 발전시켜봅시다.
'AI 프로젝트 실습' 카테고리의 다른 글
[AI 앱 배포 완성] Inno Setup으로 딥러닝 프로그램 설치파일 만들기 – 클릭 한 번 설치로 끝내는 PyQt5 + PyTorch 앱 (0) | 2025.04.22 |
---|---|
[AI 앱 만들기] PyQt5로 딥러닝 모델 실행 – DeblurGAN을 활용한 이미지 복원 GUI 앱 개발 (0) | 2025.04.22 |
[AI 실습] DeblurGANv2로 이미지 흔들림 복원하기 – PyTorch 모델 실행부터 추론까지 (0) | 2025.04.22 |
인공지능으로 사진 흔들림 제거하기 – PyTorch + PyQt5로 만드는 AI 이미지 복원 앱 개발기 (0) | 2025.04.22 |
AI 흔들림 보정 앱 만들기 – PyTorch + PyQt5로 이미지 선명하게 복원하는 데스크탑 프로그램 개발기 (0) | 2025.04.22 |