컴퓨터 TIP

PyInstaller를 사용한 EXE 변환 방법

두유노우컴퓨터 2025. 3. 24. 14:24

출처 : csdn

 

Python 파일을 EXE로 만드는 방법에는 도구로 간단히 만들 수 있다. 대표적인 도구들로는 PyInstaller, cx_Freeze, py2exe 등이 있는데, 그중 PyInstaller가 가장 널리 사용된다.

 

1. PyInstaller 설치

pip install pyinstaller

 

2. 기본 EXE 파일 생성

# 기본 명령어
pyinstaller your_script.py

# 콘솔 창 없이 실행
pyinstaller --noconsole your_script.py

# 단일 파일로 만들기
pyinstaller --onefile your_script.py

# 단일 파일 + 콘솔 창 없이
pyinstaller --onefile --noconsole your_script.py

# 아이콘 추가
pyinstaller --onefile --noconsole --icon=your_icon.ico your_script.py

 

3. 추가 Python 라이브러리나 파일 포함시키기

# 추가 파일 포함시키기
pyinstaller --onefile --add-data "folder/file.txt;folder" your_script.py

# Windows에서는 세미콜론(;), Linux/Mac에서는 콜론(:)을 구분자로 사용
# 예: 윈도우에서 images 폴더를 포함시키기
pyinstaller --onefile --add-data "images;images" your_script.py

 

4. JAR 파일이나 Java 관련 파일 포함시키기

# JAR 파일을 포함시키기
pyinstaller --onefile --add-data "your_file.jar;." your_script.py

 

5. 사용자 정의 모듈(custom_module.py) 포함시키기

# custom_module.py 파일 포함시키기
pyinstaller --onefile --add-data "custom_module.py;." your_script.py

 

6. EXE 파일 포함 시키기

import os
import sys
import subprocess

def get_Add_Module_path():
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS  # PyInstaller가 임시로 풀어놓은 경로
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, "Add_Module.exe")

# 예시: Add_Module를 호출하는 부분
Add_Module_path = get_Add_Module_path()
cmd = [Add_Module_path, "dump", "packagename", "your.apk"]
result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
print(result.stdout)

 

코드 내에서 위와 같이 sys._MEIPASS를 이용하여 add_module.exe의 경로를 동적으로 찾아 실행하면 PyInstaller로 단일 실행 파일로 빌드할 때 add_module.exe도 포함되고, 런타임에 올바른 경로에서 실행된다.

# 같은 경로에 add_module.exe 있는 경우
pyinstaller --onefile --add-data "add_module.exe;." your_script.py