- pyinstaller app.spec 한 번으로 dist\app\팔레타이징.exe 가 바로 나오도록 EXE name 변경 (기존: app.exe 빌드 후 수동 이름 변경) - 빌드용 패키지 설치 명령과 파이썬 버전 참고사항을 spec 상단에 문서화 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
# -*- mode: python ; coding: utf-8 -*-
|
|
# ═════════════════════════════════════════════════════════════════
|
|
# 팔레타이징 앱 실행파일 빌드 설정 (PyInstaller)
|
|
#
|
|
# [빌드 명령어]
|
|
# pyinstaller app.spec
|
|
# → 산출물: dist\app\팔레타이징.exe (더블클릭 실행, dist\app 폴더째 배포)
|
|
#
|
|
# [사전 준비 - 빌드용 파이썬에 패키지 설치]
|
|
# python -m pip install pyinstaller flask waitress pywebview minimalmodbus pyserial
|
|
#
|
|
# [참고]
|
|
# - SDK/jkrc.pyd 는 Stable ABI(python3.dll)라 파이썬 3.x 버전을 크게 안 탐.
|
|
# 단, pywebview(pythonnet)가 최신 파이썬을 아직 지원 안 하면
|
|
# Python 3.12 등에서: py -3.12 -m pip install ... / py -3.12 -m PyInstaller app.spec
|
|
# - 기존 운영 exe는 Python 3.8로 빌드된 것이었음 (2024년 빌드)
|
|
# ═════════════════════════════════════════════════════════════════
|
|
|
|
|
|
a = Analysis(
|
|
['app.py'],
|
|
pathex=[],
|
|
binaries=[],
|
|
datas=[('templates', 'templates'), ('static', 'static'), ('SDK', 'SDK'), ('api_routes.py', 'api_routes.py')],
|
|
hiddenimports=[],
|
|
hookspath=[],
|
|
hooksconfig={},
|
|
runtime_hooks=[],
|
|
excludes=[],
|
|
noarchive=False,
|
|
optimize=0,
|
|
)
|
|
pyz = PYZ(a.pure)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
[],
|
|
exclude_binaries=True,
|
|
name='팔레타이징', # exe 파일명 (기존에는 name='app'으로 빌드 후 수동으로 이름 변경했었음)
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=True,
|
|
console=True,
|
|
disable_windowed_traceback=False,
|
|
argv_emulation=False,
|
|
target_arch=None,
|
|
codesign_identity=None,
|
|
entitlements_file=None,
|
|
)
|
|
coll = COLLECT(
|
|
exe,
|
|
a.binaries,
|
|
a.datas,
|
|
strip=False,
|
|
upx=True,
|
|
upx_exclude=[],
|
|
name='app',
|
|
)
|