Stellen Sie sich dieses Dilemma vor: Sie codieren eine Python-Anwendung, die mit PyInstaller in einer EXE-Datei gebündelt ist, und zwar hängt von einer .cfg-Datei in seinem Verzeichnis ab. Leider schlägt die übliche Methode zum Erstellen des Pfads mithilfe von sys.path[0] in der EXE-Datei fehl. Gibt es eine Problemumgehung, um den Pfad der Anwendung zuverlässig zu bestimmen?
Nun, hier ist eine brillante Lösung:
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)
Dieser clevere Trick nutzt Pythons Datei-Attribut, das nur ist definiert, wenn es als Skript ausgeführt wird, und das „frozen“-Attribut im sys-Modul, das angibt, ob die Anwendung als EXE eingefroren ist. Es bewältigt beide Szenarien problemlos und bietet eine robuste Lösung zum Auffinden Ihrer Konfigurationsdatei selbst in einer EXE-basierten Umgebung.
Das obige ist der detaillierte Inhalt vonWie finden Sie Ihren Anwendungspfad in von PyInstaller generierten EXE-Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!