Cette application minuteur peut être convertie en exécutable autonome grâce à PyInstaller. L'exécutable généré fonctionne sans installation Python sur le système cible.
- Outil utilisé : PyInstaller 6.15.0
- Taille de l'exécutable : ~57 MB (avec toutes les dépendances)
- Format : Dossier (
--onedir) - requis pour CustomTkinter - Plateformes supportées : Linux (testé), Windows et macOS possibles
- Poetry installé
- Environnement activé :
poetry install
Utilisez le script automatisé :
python build_exe.pypoetry run pyinstaller \
--name Minuteur \
--windowed \
--onedir \
--collect-all customtkinter \
--collect-all pystray \
--collect-all PIL \
--clean \
--noconfirm \
minuteur/main.pydist/
└── Minuteur/
├── Minuteur # Exécutable principal (Linux)
├── Minuteur.exe # Exécutable principal (Windows)
└── _internal/ # Bibliothèques et dépendances
├── customtkinter/
├── PIL/
├── pystray/
└── ...
# Linux
./dist/Minuteur/Minuteur
# Windows
dist\Minuteur\Minuteur.exe- ✅ Interface CustomTkinter : Thèmes sombres/clairs
- ✅ System Tray : Icône dans la barre système
- ✅ Temps dynamique : Affichage temps restant dans le tray
- ✅ Notifications : Alertes de fin de minuteur
- ✅ Auto-suffisant : Aucune dépendance externe requise
Pour distribuer l'application :
- Copier le dossier complet
dist/Minuteur/ - L'utilisateur final lance simplement
Minuteur(ouMinuteur.exe) - Aucune installation Python/Poetry requise sur le système cible
FileNotFoundError: blue.json
Solution : L'option --collect-all customtkinter est incluse automatiquement.
PIL cannot create tray icon
Solution : L'option --collect-all PIL gère les dépendances d'images.
C'est normal pour une application GUI Python avec :
- CustomTkinter + thèmes
- PIL/Pillow + codecs images
- pystray + dépendances système
- Python runtime complet
- Exclure modules inutilisés :
--exclude-module - Compression UPX : Réduction ~30% de taille
- One-file : Impossible avec CustomTkinter (limitation technique)
- Linux : ✅ Testé et fonctionnel
- Windows : ✅ Compatible (non testé)
- macOS : ✅ Compatible (non testé)
Note : PyInstaller ne fait pas de compilation croisée. Pour Windows, construire sur Windows. Pour macOS, construire sur macOS.