Python으로 개발한 프로그램을 배포할 때, 종종 사용자가 Python 인터프리터를 설치하지 않아도 실행 가능한 형태로 배포하고 싶을 때가 있습니다. 이럴 때 PyInstaller를 사용하면 Python 코드를 독립 실행 파일(executable)로 만들 수 있습니다. PyInstaller는 Windows, macOS, 그리고 Linux를 모두 지원하며, 다양한 Python 버전을 지원합니다.
PyInstaller 설치
PyInstaller를 사용하기 위해서는 먼저 설치해야 합니다. 터미널(또는 명령 프롬프트)을 열고 다음 명령어를 입력합니다:
pip install pyinstaller
기본 사용법
PyInstaller의 기본 사용법은 매우 간단합니다. 다음과 같은 Python 스크립트 `example.py`가 있다고 가정해보겠습니다:
# example.py
print("Hello, PyInstaller!")
이 스크립트를 실행 파일로 만들기 위해 다음 명령어를 입력합니다:
pyinstaller example.py
이 명령어를 실행하면 PyInstaller는 여러 파일과 폴더를 생성합니다. 생성된 파일과 폴더는 다음과 같습니다:
- `dist/`: 실행 파일이 생성되는 디렉토리
- `build/`: 빌드 과정에서 생성된 임시 파일들이 저장되는 디렉토리
- `example.spec`: 빌드 설정 파일
- 기타 로그 파일 등
`dist/` 디렉토리 안에 `example`라는 이름의 실행 파일이 생성됩니다. 이 파일을 다른 컴퓨터로 옮겨 실행하면 됩니다.
추가 옵션
PyInstaller는 다양한 옵션을 제공하여 빌드 과정을 커스터마이징할 수 있습니다. 몇 가지 유용한 옵션을 소개합니다:
단일 실행 파일 만들기
기본적으로 PyInstaller는 실행 파일 외에도 여러 의존 파일을 함께 생성합니다. 만약 하나의 실행 파일로 만들고 싶다면 `--onefile` 옵션을 사용하면 됩니다:
pyinstaller --onefile example.py
이 옵션을 사용하면 `dist/` 디렉토리에 단일 실행 파일이 생성됩니다.
콘솔 없이 GUI 애플리케이션 만들기
기본적으로 PyInstaller는 콘솔 창을 엽니다. 만약 GUI 애플리케이션을 만들고 싶다면 `--noconsole` 옵션을 사용하면 됩니다:
pyinstaller --noconsole example.py
이 옵션을 사용하면 실행 시 콘솔 창이 열리지 않습니다.
아이콘 설정
실행 파일의 아이콘을 설정하려면 `--icon` 옵션을 사용하면 됩니다. 아이콘 파일은 `.ico` 형식이어야 합니다:
pyinstaller --onefile --icon=youricon.ico example.py
추가 파일 포함
만약 추가로 포함해야 할 파일이 있다면 `--add-data` 옵션을 사용하면 됩니다. 예를 들어, `data` 디렉토리를 포함하고 싶다면 다음과 같이 작성합니다:
pyinstaller --add-data "data;data" example.py
이 옵션은 `data` 디렉토리를 빌드된 실행 파일에 포함시킵니다.
스펙 파일 사용
PyInstaller는 빌드 설정을 스펙 파일(`.spec`)로 저장합니다. 스펙 파일을 수정하면 더 복잡한 설정도 가능합니다. 예를 들어, `example.spec` 파일을 열어 다음과 같이 수정할 수 있습니다:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['example.py'],
pathex=[],
binaries=[],
datas=[('data', 'data')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='example',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
icon='youricon.ico',
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='example',
)
스펙 파일을 사용하면 더욱 정교한 빌드 설정을 관리할 수 있습니다.
PyInstaller는 Python 애플리케이션을 배포하기 위한 강력한 도구입니다. 간단한 스크립트부터 복잡한 프로젝트까지 손쉽게 실행 파일로 변환할 수 있습니다. 다양한 옵션을 통해 빌드 과정을 커스터마이징하고, 스펙 파일을 사용하여 더욱 세밀한 제어가 가능합니다. PyInstaller를 통해 여러분의 Python 애플리케이션을 더욱 쉽게 배포해 보세요!
'코딩연습' 카테고리의 다른 글
Visual Studio Code에서 Terminal 창 복사 copy 하는 방법 (0) | 2024.09.22 |
---|---|
[실습1] Python으로 간단한 계산기 프로그램 만들기 (0) | 2024.09.19 |
[실습준비][Part2] Visual Studio Code 설치 (1) | 2024.09.18 |
[실습준비][Part1] miniconda 설치 및 환경설정 (2) | 2024.09.18 |
근태시간계산 (0) | 2024.08.28 |