IT_Server/ImageTranslateServer.spec

112 lines
2.7 KiB
Python

# -*- mode: python ; coding: utf-8 -*-
import os
import sys
import glob
import paddleocr
block_cipher = None
# PaddlePaddle 경로
paddle_path = os.path.join(sys.prefix, 'Lib', 'site-packages', 'paddle')
paddle_libs_path = os.path.join(paddle_path, 'libs')
paddle_base_path = os.path.join(paddle_path, 'base')
# Cython 경로
cython_path = os.path.join(sys.prefix, 'Lib', 'site-packages', 'Cython')
cython_utility_path = os.path.join(cython_path, 'Utility')
# DLL 파일들 수집
binaries = []
# paddle/libs의 모든 DLL 파일들
for dll_file in os.listdir(paddle_libs_path):
if dll_file.endswith('.dll'):
src_path = os.path.join(paddle_libs_path, dll_file)
binaries.append((src_path, '.'))
# paddle/base의 libpaddle.pyd
libpaddle_pyd = os.path.join(paddle_base_path, 'libpaddle.pyd')
if os.path.exists(libpaddle_pyd):
binaries.append((libpaddle_pyd, '.'))
# 데이터 파일들 수집
datas = [
('modules', 'modules'),
('modules/PP_Models', 'modules/PP_Models'),
('modules/fonts', 'modules/fonts'),
('modules/iop/models', 'modules/iop/models'),
]
# Cython Utility 폴더의 모든 파일을 datas에 추가
if os.path.exists(cython_utility_path):
for f in glob.glob(os.path.join(cython_utility_path, '*')):
datas.append((f, os.path.join('Cython', 'Utility')))
# paddleocr 전체 소스 폴더 datas에 추가
paddleocr_path = os.path.dirname(paddleocr.__file__)
datas.append((paddleocr_path, 'paddleocr'))
# paddleocr/tools 폴더를 dist 루트에도 추가
datas.append((os.path.join(paddleocr_path, 'tools'), 'tools'))
a = Analysis(
['main.py'],
pathex=[],
binaries=binaries,
datas=datas,
hiddenimports=[
'paddle',
'paddleocr',
'paddle.base',
'paddle.base.core',
'paddle.base.framework',
'paddle.nn',
'paddle.nn.functional',
'numpy',
'cv2',
'PIL',
'requests',
'easyocr',
'matplotlib',
'scipy',
'skimage',
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[
'Cython',
'Cython.Compiler',
'Cython.Utility',
],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='ImageTranslateServer',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=False, # 🚫 콘솔 창 숨김 (노콘솔)
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='ImageTranslateServer', # 📁 폴더 형태로 배포 (노윈도우)
)