• # Taille déraisonnable

    Posté par . En réponse au journal Réduire la taille des exécutables générés avec PyInstaller. Évalué à 1.

    Je suis assez surpris par la taille de ton exécutable.

    J'ai fait quelques interfaces graphiques plus complexes que celle que tu nous présentes pour des besoins en interne (IDE pour automatismes, interfaces de communication pyserial)).
    J'en suis à maximum 20MB sans compter les ressources (images, programmes non liés statiquement).

    • J'ai essayé sur mon PC en win7, python3.6.4, PyQt5.9, le programme fonctionne.
    • J'ai essayé avec un .spec générique (que j'utilise): le programme fait 18 MB mais j'ai un message d'erreur "Failed to execute script tool" sans autre message, donc inutilisable, je ne comprends pas pourquoi et désolé, je ne vais pas avoir le temps de chercher...

    sxtool.spec

    # -*- mode: python -*-
    block_cipher = None
    a = Analysis(['sxtool.py'],
     pathex=[],
     binaries=[],
     datas=[],
     hiddenimports=[],
     hookspath=[],
     runtime_hooks=[],
     excludes=[],
     win_no_prefer_redirects=False,
     win_private_assemblies=False,
     cipher=block_cipher)
    pyz = PYZ(a.pure, a.zipped_data,
     cipher=block_cipher)
    exe = EXE(pyz,
     a.scripts,
     a.binaries,
     a.zipfiles,
     a.datas,
     name='sxtool',
     debug=False,
     strip=False,
     upx=True,
     console=False )

    genInstaller.bat

    set PATH=%PATH%;C:\Qt\Qt5.9.05円.9\msvc2015_64\bin
    del /Q dist\sxtool.exe
    rmdir /S /Q __pycache__
    rmdir /S /Q dist
    rmdir /S /Q build
    pyinstaller sxtool.spec
    move dist\sxtool.exe .

    Je viens de m'apercevoir que j'ai un projet perso que j'avais fait à l'arrache que je peux te partager (par mail) mais pas diffuser : il y a dedans l'enregistrement des préférences, du glisser/déposer de fichier, de l'appel à un programme tiers. Par contre, dans cette interface, pas de menus, pas d'ouverture de fichier xml, et sans commentaires parce que c'est suffisamment parlant pour moi, j'avais essayé de prototyper un modèle MVC... Ce serait vraiment que pour montrer une façon de faire (très très basique) d'une interface graphique avec création d'un éxecutable et génération du fichier d'installation... Si ça t'intéresse...