Dans le domaine de la programmation, comprendre le contexte d'exécution d'une application est crucial. Surtout lorsqu'il s'agit d'applications groupées, telles que celles créées à l'aide de pyInstaller. Un défi courant survient lorsqu'une application nécessite l'accès à un fichier de configuration situé à côté d'elle. Dans cet article, nous explorerons une technique pour résoudre ce problème en récupérant avec précision le chemin de l'application dans un EXE généré par pyInstaller.
Lorsque vous utilisez la méthode conventionnelle pour construire le chemin d'accès à un fichier adjacent à l'application, comme le montre l'extrait de code ci-dessous :
import os config_name = 'myapp.cfg' config_path = os.path.join(sys.path[0], config_name)
On est confronté à un dilemme dans le contexte d'un EXE pyInstaller. La liste sys.path, qui contient normalement le répertoire contenant l'application, est vide. Pour résoudre ce problème, nous utilisons une approche plus robuste qui fait la distinction entre les scripts et les exécutables gelés.
import os import sys config_name = 'myapp.cfg' # Distinguish script file from frozen exe if getattr(sys, 'frozen', False): application_path = os.path.dirname(sys.executable) elif __file__: application_path = os.path.dirname(__file__) config_path = os.path.join(application_path, config_name)
Dans ce code, nous inspectons l'attribut « gelé » du module « sys ». Si c'est vrai, nous supposons que l'application s'exécute en tant qu'exécutable gelé et dérivons son chemin de « sys.executable ». À l'inverse, si fichier existe, nous concluons que l'application s'exécute en mode script et que son chemin est dérivé de __file__.
L'utilisation de cette méthode garantit la récupération réussie du chemin de l'application, permettant accès aux fichiers relatifs comme le fichier de configuration crucial.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!