Wie rufe ich den Anwendungspfad in einer von pyInstaller generierten EXE-Datei ab?

DDD
Freigeben: 2024-11-11 14:28:03
Original
255 Leute haben es durchsucht

How to Retrieve the Application Path in a pyInstaller-Generated EXE?

Abrufen des Anwendungspfads in Python EXE, erstellt von pyInstaller

Im Bereich der Programmierung ist das Verständnis des Ausführungskontexts einer Anwendung von entscheidender Bedeutung. Besonders wenn es um gebündelte Anwendungen geht, wie sie beispielsweise mit pyInstaller erstellt wurden. Eine häufige Herausforderung entsteht, wenn eine Anwendung Zugriff auf eine daneben liegende Konfigurationsdatei benötigt. In diesem Artikel untersuchen wir eine Technik zur Lösung dieses Problems durch genaues Abrufen des Pfads der Anwendung in einer von pyInstaller generierten EXE-Datei.

Wenn Sie die herkömmliche Methode verwenden, um den Pfad zu einer Datei neben der Anwendung zu erstellen, wie im folgenden Codeausschnitt dargestellt:

import os
config_name = 'myapp.cfg'
config_path = os.path.join(sys.path[0], config_name)
Nach dem Login kopieren

Im Kontext einer pyInstaller-EXE-Datei stößt man auf ein Dilemma. Die Liste sys.path, die normalerweise das Verzeichnis mit der Anwendung enthält, ist leer. Um dieses Problem anzugehen, verwenden wir einen robusteren Ansatz, der zwischen Skripten und eingefrorenen ausführbaren Dateien unterscheidet.

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

In diesem Code überprüfen wir das „frozen“-Attribut des „sys“-Moduls. Wenn dies wahr ist, gehen wir davon aus, dass die Anwendung als eingefrorene ausführbare Datei ausgeführt wird, und leiten ihren Pfad von „sys.executable“ ab. Wenn umgekehrt Datei vorhanden ist, schließen wir daraus, dass die Anwendung im Skriptmodus ausgeführt wird und ihr Pfad von __file__ abgeleitet ist.

Die Verwendung dieser Methode garantiert den erfolgreichen Abruf des Anwendungspfads und ermöglicht so Zugriff auf relative Dateien wie die wichtige Konfigurationsdatei.

Das obige ist der detaillierte Inhalt vonWie rufe ich den Anwendungspfad in einer von pyInstaller generierten EXE-Datei ab?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage