Spaces:
Runtime error
Runtime error
# -*- mode: python ; coding: utf-8 -*- | |
from PyInstaller.utils.hooks import collect_all, copy_metadata | |
import os | |
# Defina o caminho raiz do seu projeto | |
project_root = 'C:\\Users\\User\\FINAL_ALPR_APP\\FINAL_ALPR_APP\\' | |
# Inclua dados adicionais como modelos, chaves de criptografia, sessões e ícones | |
datas = [ | |
(os.path.join(project_root, 'paddleocr_models'), 'paddleocr_models'), | |
(os.path.join(project_root, 'best.pt'), '.'), | |
(os.path.join(project_root, 'decrypt_key.txt'), '.'), | |
(os.path.join(project_root, 'new_session.session'), '.'), | |
(os.path.join(project_root, 'SECRET_DATA.enc'), '.'), | |
(os.path.join(project_root, 'PaddleOCR/tools'), 'PaddleOCR/tools'), | |
(os.path.join(project_root, '.venv/Lib/site-packages/paddle/libs'), 'libs') | |
] | |
# Inclua as bibliotecas DLL do paddle manualmente, se necessário | |
paddle_libs_path = os.path.join(project_root, '.venv\\Lib\\site-packages\\paddle\\libs') | |
binaries = [ | |
(os.path.join(paddle_libs_path, 'mklml.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'libiomp5md.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'common.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'libblas.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'libgcc_s_seh-1.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'libgfortran-3.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'liblapack.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'libquadmath-0.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'mkldnn.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'warpctc.dll'), '.'), | |
(os.path.join(paddle_libs_path, 'warprnnt.dll'), '.'), | |
(os.path.join(project_root, 'msvcp140.dll'), '.'), | |
(os.path.join(project_root, 'vcruntime140.dll'), '.'), | |
(os.path.join(project_root, 'vcruntime140_1.dll'), '.') | |
] | |
# Importações ocultas e coleta de todas as dependências de pacotes complexos | |
hiddenimports = [ | |
'paddle.base.libpaddle', 'cv2', 'kivy', 'telethon', 'cryptography', 'PyYAML', 'numpy', 'Pillow', | |
'cffi', 'pycparser', 'six' | |
] | |
# Recolha todas as dependências adicionais dos pacotes especificados | |
for package in ['paddle', 'paddleocr', 'libpaddle', 'pyclipper', 'imghdr', 'skimage', 'imgaug', 'scipy.io', 'lmdb', 'paddlepaddle', 'ultralytics']: | |
tmp_ret = collect_all(package) | |
datas += tmp_ret[0] | |
binaries += tmp_ret[1] | |
hiddenimports += tmp_ret[2] | |
# Inclui metadados críticos dos pacotes complexos | |
datas += copy_metadata('paddleocr') | |
datas += copy_metadata('telethon') | |
datas += copy_metadata('kivy') | |
a = Analysis( | |
[os.path.join(project_root, 'main.py')], | |
pathex=[], | |
binaries=binaries, | |
datas=datas, | |
hiddenimports=hiddenimports, | |
hookspath=[], | |
hooksconfig={}, | |
runtime_hooks=[], | |
excludes=[], | |
noarchive=False, | |
optimize=0, | |
) | |
pyz = PYZ(a.pure) | |
# Configuração do executável | |
exe = EXE( | |
pyz, | |
a.scripts, | |
[], | |
exclude_binaries=True, | |
name='main', | |
debug=False, | |
bootloader_ignore_signals=False, | |
strip=False, | |
upx=True, | |
console=False, # False para janela sem console, True para janela com console | |
disable_windowed_traceback=False, | |
argv_emulation=False, | |
target_arch=None, | |
codesign_identity=None, | |
entitlements_file=None, | |
icon=[os.path.join(project_root, 'app_icon.ico')], | |
) | |
coll = COLLECT( | |
exe, | |
a.binaries, | |
a.datas, | |
strip=False, | |
upx=True, # Defina como False se estiver tendo dificuldade com binários | |
upx_exclude=[], | |
name='main', | |
) |