Bündelung externer Dateien mit PyInstaller über --onefile
Beim Versuch, eine ausführbare Datei mit einer einzigen Datei (.exe) mit PyInstaller zu erstellen -- Mit der onefile-Option können Benutzer Schwierigkeiten beim Einbinden externer Dateien wie Bilder oder Symbole haben. Mit dieser Option wird zwar eine praktische, portable Anwendung erstellt, es werden jedoch häufig keine zusätzlichen Dateien gefunden, die zur Funktionalität der Anwendung beitragen.
Um dieses Problem zu beheben, mussten frühere Versionen von PyInstaller eine Umgebungsvariable festlegen, um den Speicherort anzugeben zusätzliche Dateien. Allerdings haben aktuelle Updates von PyInstaller diesen Ansatz geändert. Die aktuelle Methode für den Zugriff auf externe Dateien im --onefile-Modus erfolgt über die Variable sys._MEIPASS.
Der folgende Code zeigt, wie mit dem aktualisierten Ansatz auf externe Dateien zugegriffen wird:
import sys def resource_path(relative_path): """ Get absolute path to resource, works for dev and for PyInstaller """ try: # PyInstaller creates a temp folder and stores path in _MEIPASS base_path = sys._MEIPASS except Exception: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path)
Von Wenn Sie diese Funktion mit dem relativen Pfad zur externen Datei aufrufen, können Sie deren absoluten Pfad erhalten, unabhängig davon, ob Sie die Anwendung in einer Entwicklungsumgebung oder in einer von PyInstaller generierten Umgebung ausführen ausführbar.
Das obige ist der detaillierte Inhalt vonWie kann ich auf externe Dateien in einer ausführbaren Datei von PyInstaller --onefile zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!