Python-Skript in der Electron App ausführen

8

Ich habe ein Electron-Projekt, das ein Python-Skript mit dem child_process-Modul von NodeJS ausführt. Mein Python-Skript befindet sich im Stammordner meines Projekts.

So rufe ich das Python-Skript auf:

%Vor%

Das funktioniert gut, wenn ich meine Elektronen-App mit npm start starte Wenn ich eine ausführbare Datei für Windows mit dem npm-Modul electron-builder erstelle und die ausführbare Datei von dist/win-unpacked/my-app.exe ausführe, funktioniert das nicht, es scheint, dass mein Skript nicht mit python ./my-script-py zugänglich ist.

Wie kann ich also diesen Code für das erstellte Projekt verwenden?

    
Jose Hermosilla Rodrigo 17.12.2016, 15:10
quelle

2 Antworten

8

Ich habe mein Problem gelöst. Ich werde für mögliche zukünftige Leser mit dem gleichen Problem erklären.

Unter Verwendung des Elektronen-Builders gibt es einige Möglichkeiten, den Quellcode der Anwendung nicht in eine Elektronendatei zu packen. Diese Optionen sind:

  

asar

     

Ob der Quellcode der Anwendung in ein Archiv gepackt werden soll,   mit dem Archivformat von Electron. Der Standardwert ist wahr. Knotenmodule, das   muss entpackt werden, wird automatisch erkannt, das musst du nicht   explizit asarUnpack setzen - bitte Datei Problem, wenn dies nicht funktioniert.

     

Oder Sie können Objekte von asar Optionen übergeben.

     

asarUnpack

     

Ein Glob-Muster relativ zum App-Verzeichnis, das angibt, welches   zu entpackende Dateien beim Erstellen des Asar-Archivs.

DOCS

Das Festlegen von asar auf false behebt das Problem, wird jedoch von electron-builder nicht empfohlen.

Also inklusive aller Dateien, die ich in einen Ordner entpacken und verwenden muss "asarUnpack" : "my-folder/*" ist der richtige Weg. Jetzt sind alle entpackten Dateien in /resources/app.asar.unpacked/my-folder

verfügbar

Eine andere Sache, die zu berücksichtigen ist, ist, dass die Verwendung des Pfads './ResolvePosition.py' den Wurzelordner meines Elektronenprojekts und nicht den Pfad, in dem sich meine NodeJS-Datei befindet, verwenden muss:

%Vor%     
Jose Hermosilla Rodrigo 18.12.2016, 15:01
quelle
2

Sie können das Skript in extraResources einfügen:

%Vor%

Und dann wird das Verzeichnis im App-Wurzelverzeichnis sein:

%Vor%     
HdN8 11.01.2017 02:10
quelle