# -*- 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', )