Appel de fonctions Python à partir de Node.js
Exploiter les capacités des bibliothèques d'apprentissage automatique de Python dans une application Node.js nécessite un moyen d'invoquer Fonctions Python de l'environnement Node.js. Le package 'child_process' apparaît comme un outil idéal pour combler cette lacune.
Solution : Utiliser 'child_process'
En employant le package 'child_process', vous pouvez créer un sous-processus Python et exécutez des fonctions Python à l'intérieur. Voici comment procéder :
Commencez par importer le module 'child_process' :
const spawn = require("child_process").spawn;
Créez un sous-processus Python et fournissez le Python chemin du script et tous les arguments souhaités :
const pythonProcess = spawn('python', ["path/to/script.py", arg1, arg2, ...]);
Sur Python côté, assurez-vous que 'sys' est importé et utilisez 'sys.argv' pour accéder aux arguments transmis depuis Node.js :
import sys arg1 = sys.argv[1] arg2 = sys.argv[2]
Pour renvoyer les données à Node.js, utilisez 'imprimer' dans le script Python et vider la sortie :
print(dataToSendBack) sys.stdout.flush()
Dans Node.js, écoutez les données à partir du sous-processus Python :
pythonProcess.stdout.on('data', (data) => { // Handle the data received from the Python script });
Flexibilité et invocation de fonctions dynamiques
L'avantage de cette approche est qu'elle permet à plusieurs arguments d'être transmis au script Python. Cette flexibilité vous permet de concevoir un script Python dans lequel un argument spécifié détermine quelle fonction appeler, et d'autres arguments sont transmis à cette fonction.
Exemple :
Dans votre Script Python, définissez une fonction pour l'apprentissage automatique et une fonction principale qui orchestre quelle fonction appeler en fonction d'un argument spécifié :
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()
En passant le nom et les données de la fonction comme arguments du script de Node.js, vous pouvez appeler dynamiquement la fonction Python appropriée.
Remarque : Le transfert de données entre Node.js et Python est réalisé via une sortie standard et des flux d'entrée standard .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!