[python] 윈도우용 파이썬 프로그램 배포 방법 (SQLite 포함)

 

윈도우용 파이썬 프로그램 배포 방법 (SQLite 포함)

파이썬으로 개발한 프로그램을 윈도우에서 실행할 수 있도록 배포하는 방법을 정리해보겠습니다. 특히, SQLite 데이터베이스를 포함하여 배포하는 방법에 대해 자세히 설명하겠습니다.

1. 배포 준비: 필요한 파일 정리

배포할 프로그램을 구성하는 파일을 먼저 정리해야 합니다. 일반적으로 다음과 같은 파일들이 필요합니다.

  • main.py (메인 실행 파일)
  • database.db (SQLite 데이터베이스 파일)
  • config.json (설정 파일이 있을 경우)
  • requirements.txt (사용한 라이브러리 목록)

이 파일들을 포함하여 프로그램을 패키징하면 배포 시 필요한 환경을 쉽게 구성할 수 있습니다.

2. PyInstaller를 이용한 실행 파일(.exe) 생성

PyInstaller를 사용하면 파이썬 스크립트를 실행 파일(.exe)로 변환할 수 있습니다.

2.1 PyInstaller 설치

먼저 PyInstaller를 설치합니다.

pip install pyinstaller

2.2 단일 실행 파일(.exe) 생성

아래 명령어를 실행하면 .exe 실행 파일이 생성됩니다.

pyinstaller --onefile --add-data "database.db;." main.py
  • --onefile: 단일 실행 파일로 생성
  • --add-data "database.db;.": SQLite 데이터베이스 파일을 포함

💡 참고: 경로 구분자는 운영체제에 따라 다릅니다.

  • Windows: database.db;.
  • Mac/Linux: database.db:.

2.3 폴더 기반 실행 파일 생성

폴더 기반으로 배포할 경우 다음 명령어를 사용합니다.

pyinstaller --add-data "database.db;." main.py

이렇게 하면 dist/main/ 폴더 안에 실행 파일과 필요한 파일들이 포함됩니다.

3. SQLite 데이터베이스 포함 및 경로 설정

PyInstaller로 패키징된 실행 파일에서도 SQLite DB를 정상적으로 불러올 수 있도록 경로를 설정해야 합니다.

SQLite DB 파일 경로 지정 코드 예제

import os
import sys
import sqlite3

def get_database_path():
    if getattr(sys, 'frozen', False):  # PyInstaller 실행 파일 여부 체크
        base_path = sys._MEIPASS  # 실행 파일 내부 경로
    else:
        base_path = os.path.dirname(os.path.abspath(__file__))  # 개발 환경

    return os.path.join(base_path, "database.db")

db_path = get_database_path()

# SQLite 연결
conn = sqlite3.connect(db_path)
cursor = conn.cursor()

이 코드를 사용하면 실행 파일이 어느 경로에서 실행되든 SQLite DB를 정상적으로 찾을 수 있습니다.

4. 배포 파일 압축 및 전달

PyInstaller로 생성된 실행 파일을 포함한 폴더(dist/main/)를 압축하여 배포하면 됩니다.

배포할 파일 목록

  • dist/main.exe (혹은 dist/main/ 폴더 전체)
  • database.db
  • config.json (설정 파일이 있다면 포함)

5. 추가 옵션 (선택 사항)

5.1 아이콘 추가

pyinstaller --onefile --icon=app.ico main.py

이 명령어를 사용하면 실행 파일에 아이콘을 추가할 수 있습니다.

5.2 콘솔 창 숨기기 (GUI 프로그램인 경우)

pyinstaller --onefile --noconsole main.py

GUI 프로그램에서는 콘솔 창이 나타나는 것을 방지하기 위해 --noconsole 옵션을 사용할 수 있습니다.

6. 배포 후 테스트

배포한 .exe 파일을 다른 PC에서 실행하여 정상적으로 동작하는지 확인하세요. 특히, SQLite DB가 정상적으로 로드되는지 확인하는 것이 중요합니다.

이 과정을 따르면 SQLite DB까지 포함된 윈도우용 실행 파일을 쉽게 배포할 수 있습니다. 🚀

댓글

이 블로그의 인기 게시물

공압 속도 제어: 미터인 vs 미터아웃

[PLC] PLC 아날로그 입출력 기본

전력(kW) 계산하기 (직류, 교류 단상, 교류 삼상)

NPN, PNP 트랜지스터 차이점

[PLC] 래더 다이어그램과 PLC

Industrial Control with Relay: 파워릴레이와 범용릴레이

[PLC] 접지(지락) 사고와 단락의 차이점 (The Difference Between a Ground Fault and Short Circuit)

제너 다이오드에 저항을 연결하는 이유

[아두이노] 가변저항(Potential Divider)과 전압분배(Voltage Divider)

[PLC] SSR 선정시 고려사항 - 돌입전류