import sys from pathlib import Path from PySide6.QtWidgets import QApplication PROJECT_ROOT = Path(__file__).resolve().parents[2] def get_internal_dir() -> Path: # Retourne le chemin vers les ressources figées à l'intérieur de l'EXE (_MEIPASS). # En mode script, retourne le dossier du fichier .py. if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'): return Path(sys._MEIPASS).resolve() return Path(__file__).resolve().parents[2] def get_executable_dir() -> Path: # Retourne le chemin du dossier contenant réellement le fichier .exe. # C'est ici que se trouve votre 'config.json'. if getattr(sys, 'frozen', False): # sys.executable est le chemin complet vers l'application .exe return Path(sys.executable).parent.resolve() return Path(__file__).resolve().parents[2] def quit_application(exit_code: int = 0) -> None: app = QApplication.instance() if app is not None: app.closeAllWindows() app.exit(exit_code) sys.exit(exit_code)