컴퓨터 TIP
PyInstaller를 사용한 EXE 변환 방법
두유노우컴퓨터
2025. 3. 24. 14:24
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