Heim >Backend-Entwicklung >Python-Tutorial >Wie rufe ich den Anwendungspfad in einer von pyInstaller generierten EXE-Datei ab?

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

DDD
DDDOriginal
2024-11-11 14:28:03349Durchsuche

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)

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)

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!

Stellungnahme:
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