Chapter 26. EXE 만들기

IT 지식 / Python·2026.08.27
EXE CREATION
Chapter 26. EXE 만들기
EXE 파일을 만들고 배포하는 방법에 대해 알아봅니다.

26.1 EXE 파일이란?

EXE 파일은 Windows에서 실행할 수 있는 프로그램 파일입니다. 파이썬으로 만든 프로그램은 보통 .py 파일로 실행하지만, 다른 사람에게 배포하려면 Python이 설치되어 있지 않아도 실행할 수 있도록 .exe 파일로 만드는 것이 좋습니다.

EXE 파일을 만드는 이유
  • Python 설치 없이 실행 가능
  • 더블클릭으로 실행 가능
  • 수강생이나 사용자에게 배포하기 편리
  • GUI 프로그램을 일반 프로그램처럼 사용할 수 있음

예) member_app.py → member_app.exe

26.2 PyInstaller란?

PyInstaller는 파이썬 프로그램을 EXE 파일로 변환해주는 도구입니다. Tkinter, SQLite, 이미지 파일 등을 포함한 프로그램도 EXE로 만들 수 있습니다.

PyInstaller 설치

명령 프롬프트에서 실행합니다.

Command Prompt
pip install pyinstaller
설치 확인
Command Prompt
pyinstaller --version
26.3 기본 EXE 만들기

예제 파일: main.py

명령 프롬프트에서 main.py가 있는 폴더로 이동합니다.

Command Prompt
cd C:\python_project
EXE 생성
Command Prompt
pyinstaller main.py

실행 후 다음 폴더가 생성됩니다.

  • build
  • dist
  • main.spec

실행 파일 위치: dist/main/main.exe

26.4 하나의 EXE 파일로 만들기

여러 파일이 아닌 하나의 EXE 파일로 만들려면 --onefile 옵션을 사용합니다.

Command Prompt
pyinstaller --onefile main.py

생성 위치: dist/main.exe

26.5 콘솔 창 숨기기

Tkinter GUI 프로그램은 검은색 콘솔 창이 함께 뜰 수 있습니다. 콘솔 창을 숨기려면 --windowed 옵션을 사용합니다.

Command Prompt
pyinstaller --onefile --windowed main.py

또는

Command Prompt
pyinstaller --onefile -w main.py
26.6 아이콘 넣기

프로그램 아이콘을 넣으려면 .ico 파일을 준비합니다.

Command Prompt
pyinstaller --onefile --windowed --icon=app.ico main.py

주의할 점은 PNG나 JPG가 아니라 ICO 파일을 사용해야 합니다.

26.7 파일 포함하기

이미지, DB 파일, 설정 파일 등을 함께 포함해야 할 때가 있습니다.

예)

project/
├── main.py
├── member.db
└── images/
    └── logo.png

Windows에서는 --add-data 옵션을 사용합니다.

Command Prompt
pyinstaller --onefile --windowed --add-data "member.db;." main.py

이미지 폴더 포함

Command Prompt
pyinstaller --onefile --windowed --add-data "images;images" main.py
26.8 경로 처리

EXE로 만들면 파일 경로가 달라질 수 있습니다. 따라서 다음과 같은 함수를 사용하면 안전합니다.

Python
import os
import sys

def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

이미지 사용 예

Python
logo_path = resource_path("images/logo.png")

DB 파일 사용 예

Python
db_path = resource_path("member.db")
26.9 배포하기

EXE 파일을 만든 후 dist 폴더 안의 실행 파일을 사용자에게 전달하면 됩니다.

onefile 방식

dist/main.exe 이 파일 하나만 전달하면 됩니다.

폴더 방식
dist/main/
├── main.exe
├── python.dll
└── 기타 파일

폴더 전체를 압축해서 전달해야 합니다.

배포 전 확인 사항
  • 다른 PC에서 실행되는지 확인
  • DB 파일 경로 확인
  • 이미지 파일 포함 여부 확인
  • 한글 파일 경로 문제 확인
  • 백신 오탐 여부 확인
  • Windows 버전 확인
26.10 자주 발생하는 오류
  • ① pyinstaller 명령어가 안 되는 경우
  • Command Prompt
    python -m PyInstaller --onefile main.py
    Command Prompt
    py -m PyInstaller --onefile main.py
  • ② 모듈을 찾을 수 없는 경우
  • 필요한 라이브러리가 설치되어 있는지 확인합니다.

    Command Prompt
    pip install 라이브러리명
  • ③ 이미지가 안 나오는 경우
  • 이미지 파일을 포함했는지 확인합니다.

    Command Prompt
    --add-data "images;images"

    코드에서는 resource_path()를 사용합니다.

  • ④ DB 파일을 못 찾는 경우
  • SQLite DB 파일 경로를 확인합니다.

    Python
    db_path = resource_path("member.db")
26.11 복합 예제

Tkinter 프로그램을 EXE로 만들기

Command Prompt
pyinstaller --onefile --windowed --icon=app.ico main.py

이미지 폴더 포함

Command Prompt
pyinstaller --onefile --windowed --icon=app.ico --add-data "images;images" main.py

DB 파일 포함

Command Prompt
pyinstaller --onefile --windowed --icon=app.ico --add-data "member.db;." main.py

이미지와 DB 모두 포함

Command Prompt
pyinstaller --onefile --windowed --icon=app.ico --add-data "images;images" --add-data "member.db;." main.py
26.12 배포 폴더 예시
회원관리프로그램/
├── member_app.exe
├── 사용방법.txt
└── sample_data/

사용방법.txt 예시

  1. member_app.exe를 실행합니다.
  2. 회원등록 버튼을 클릭합니다.
  3. 회원 정보를 입력합니다.
  4. 조회 버튼으로 회원 목록을 확인합니다.
📌 Chapter 26 핵심 정리
  • EXE 파일은 Windows에서 실행할 수 있는 프로그램 파일이다.
  • PyInstaller를 사용하여 파이썬 프로그램을 EXE로 변환할 수 있다.
  • --onefile 옵션으로 하나의 EXE 파일로 만들 수 있다.
  • --windowed 옵션으로 콘솔 창을 숨길 수 있다.
  • --add-data 옵션으로 파일을 포함할 수 있다.
  • 배포 전 여러 확인 사항을 체크해야 한다.

프로그램·홈페이지·강의가 필요하신가요?

프로그램 판매, 무료 다운로드, 홈페이지 제작, IT 강의 상담을 도와드립니다.

상담 신청하기