Heim >Backend-Entwicklung >Python-Tutorial >Wie rufe ich Python-Funktionen von Node.js mit „child_process' auf?
Aufrufen von Python-Funktionen aus Node.js
Um die Funktionen der Python-Bibliotheken für maschinelles Lernen in einer Node.js-Anwendung nutzen zu können, ist eine Aufrufmöglichkeit erforderlich Python-Funktionen aus der Node.js-Umgebung. Das Paket „child_process“ erweist sich als ideales Werkzeug, um diese Lücke zu schließen.
Lösung: Verwendung von „child_process“
Durch die Verwendung des Pakets „child_process“ können Sie erstellen einen Python-Unterprozess erstellen und darin Python-Funktionen ausführen. So geht's:
Beginnen Sie mit dem Importieren des Moduls „child_process“:
const spawn = require("child_process").spawn;
Erstellen Sie einen Python-Unterprozess und stellen Sie Python bereit Skriptpfad und alle gewünschten Argumente:
const pythonProcess = spawn('python', ["path/to/script.py", arg1, arg2, ...]);
Auf der Python-Seite, Stellen Sie sicher, dass „sys“ importiert ist, und verwenden Sie „sys.argv“, um auf die von Node.js übergebenen Argumente zuzugreifen:
import sys arg1 = sys.argv[1] arg2 = sys.argv[2]
Um Daten an Node.js zurückzugeben, verwenden Sie „print ' im Python-Skript und leeren Sie die Ausgabe:
print(dataToSendBack) sys.stdout.flush()
Achten Sie in Node.js auf Daten vom Python Unterprozess:
pythonProcess.stdout.on('data', (data) => { // Handle the data received from the Python script });
Flexibilität und dynamischer Funktionsaufruf
Der Vorteil dieses Ansatzes besteht darin, dass mehrere Argumente an den übergeben werden können Python-Skript. Diese Flexibilität ermöglicht es Ihnen, ein Python-Skript zu entwerfen, bei dem ein angegebenes Argument bestimmt, welche Funktion aufgerufen werden soll, und andere Argumente an diese Funktion übergeben werden.
Beispiel:
In Ihrem Python-Skript: Definieren Sie eine Funktion für maschinelles Lernen und eine Hauptfunktion, die basierend auf einem angegebenen Argument orchestriert, welche Funktion aufgerufen werden soll:
def machine_learning_function(data): # Implement the machine learning functionality def main(): function_name = sys.argv[1] data = sys.argv[2] if function_name == "machine_learning_function": machine_learning_function(data) if __name__ == "__main__": main()
Durch Übergabe des Funktionsnamens und der Daten Als Argumente für das Skript von Node.js können Sie die entsprechende Python-Funktion dynamisch aufrufen.
Hinweis: Die Datenübertragung zwischen Node.js und Python erfolgt über Standardausgabe und Standardeingabestreams .
Das obige ist der detaillierte Inhalt vonWie rufe ich Python-Funktionen von Node.js mit „child_process' auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!