Imaginez ce dilemme : vous codez une application Python intégrée dans un EXE avec PyInstaller, et elle dépend d'un fichier .cfg dans son répertoire. Malheureusement, la méthode habituelle de construction du chemin à l’aide de sys.path[0] échoue dans l’EXE. Existe-t-il une solution de contournement pour déterminer de manière fiable le chemin de l'application ?
Eh bien, voici une solution brillante :
import os import sys config_name = 'myapp.cfg' # First, we check if the application is running as a script or as an EXE: if getattr(sys, 'frozen', False): # If frozen as an EXE, we extract the path from sys.executable: application_path = os.path.dirname(sys.executable) else: # If it's a script file (i.e., not frozen as an EXE), we use __file__: application_path = os.path.dirname(__file__) # Finally, we join the path and the config file name to create the complete path: config_path = os.path.join(application_path, config_name)
Cette astuce astucieuse exploite l'attribut file de Python, qui est uniquement défini lors de l'exécution en tant que script, et l'attribut « gelé » dans le module sys, qui indique si l'application est gelée en tant qu'EXE. Il gère gracieusement les deux scénarios, fournissant une solution robuste pour localiser votre fichier de configuration même dans un environnement EXE.
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!