Heim > Backend-Entwicklung > Python-Tutorial > Wie finden Sie Ihren Anwendungspfad in von PyInstaller generierten EXE-Dateien?

Wie finden Sie Ihren Anwendungspfad in von PyInstaller generierten EXE-Dateien?

Barbara Streisand
Freigeben: 2024-11-26 12:23:13
Original
398 Leute haben es durchsucht

How to Find Your Application Path in PyInstaller-Generated EXEs?

Code-Dilemma: Anwendungspfad in von PyInstaller generierter Python-EXE-Datei finden

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage