v1.0.1 - corrige le demarrage et ajoute le build Windows
L'application ne demarrait pas du tout : gui/app.py importait pyqtSignal, qui est le nom PyQt du signal, absent de PySide6. Trois autres defauts bloquaient juste derriere, une fois celui-ci leve : - MPLBACKEND etait fixe a 'module://backend_interagg', le backend interne de PyCharm, indisponible hors de cet IDE ; - gui/app.py et monitor/monitor.py utilisaient des imports relatifs remontant au-dela du paquet racine charge par main.py ; - core/ n'avait pas de __init__.py. Corrige aussi get_statistics(), dont le retour anticipe "historique vide" omettait connection_loss_count et uptime_percentage : le KeyError qui en resultait cassait silencieusement tout l'onglet Statistiques a chaque rafraichissement. Les deux chemins renvoient desormais les memes cles. Ajoute le build Windows (StabilityTester.spec + make build-windows), qui produit un .exe autonome depuis Linux via Wine. PySide6 y est epingle a 6.9.3 : a partir de 6.10, Qt6Core.dll depend de l'ICU systeme de Windows que Wine n'implemente pas. La sortie standard est reconfiguree en UTF-8 dans main.py, les emojis des messages faisant echouer cp1252 sous Windows. make test etait casse par la meme confusion de paquet et passe a nouveau. Makefile : libgl1-mesa-glx, retire des depots Debian/Ubuntu recents, remplace par libgl1 et les dependances Qt6 manquantes.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
StabilityTester - Application de surveillance de connexion internet
|
||||
Lancez ce fichier pour demarrer l'application GUI avec PySide6
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Sous Windows la sortie standard utilise cp1252 : les emojis des messages
|
||||
# ci-dessous la font echouer avec UnicodeEncodeError des qu'elle est
|
||||
# redirigee. En mode fenetre (executable PyInstaller) stdout vaut None.
|
||||
for _stream in (sys.stdout, sys.stderr):
|
||||
if _stream is not None:
|
||||
_stream.reconfigure(encoding="utf-8", errors="replace")
|
||||
|
||||
# Ajouter le repertoire parent au path pour les imports
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
# Forcer le backend matplotlib avant d'importer l'interface
|
||||
# Cela évite les erreurs "Failed to import PyQt5, PySide2"
|
||||
import matplotlib
|
||||
matplotlib.use("QtAgg")
|
||||
|
||||
# Essayer d'importer l'interface PySide6
|
||||
try:
|
||||
from gui.app import run_application
|
||||
print("✅ Utilisation de PySide6 pour l'interface graphique")
|
||||
run_application()
|
||||
except ImportError as e:
|
||||
print(f"❌ Erreur: Impossible de charger l'interface PySide6: {e}")
|
||||
print("")
|
||||
print("Pour résoudre ce problème:")
|
||||
print("1. Installez les dépendances: pip install -r requirements.txt")
|
||||
print("2. Assurez-vous que PySide6 est installé: pip install PySide6")
|
||||
print("3. Essayez: pip install --upgrade PySide6 matplotlib")
|
||||
print("")
|
||||
print("Si vous utilisez un environnement virtuel, activez-le d'abord:")
|
||||
print(" source .venv/bin/activate # Linux/macOS")
|
||||
print(" .\\.venv\\Scripts\\activate # Windows")
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user