Есть ли способ использовать NodeJS child_process.spawn для запуска приложения python, которое импортировало сторонние пакеты python? - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь запустить скрипт python из моего приложения NodeJS, используя child_process.spawn (). Я могу заставить свое приложение запускать этот скрипт python, когда он не импортирует встроенный пакет python, но когда я добавляю сторонний пакет python в скрипт python, приложение NodeJS больше не может запускать скрипт python до завершения. (сервер просто зависает.) Есть ли решения?

// import express JS module into app 
// and creates its variable. 
var express = require('express'); 
var app = express(); 

// Creates a server which runs on port 3000 and  
// can be accessed through localhost:3000 
app.listen(3000, function() { 
    console.log('server running on port 3000'); 
} ) 

// Function callName() is executed whenever  
// url is of the form localhost:3000/name 
app.get('/', callName); 

function callName(req, res) { 

    // Use child_process.spawn method from  
    // child_process module and assign it 
    // to variable spawn 
    var spawn = require("child_process").spawn; 

    // Parameters passed in spawn - 
    // 1. type_of_script 
    // 2. list containing Path of the script 
    //    and arguments for the script  

    // E.g : http://localhost:3000/name?firstname=Mike&lastname=Will 
    // so, first name = Mike and last name = Will 
    var process = spawn('python',["./RNN.py" 
] ); 

    // Takes stdout data from script which executed 
    // with arguments and send this data to res object 
    process.stdout.on('data', function(data) { 
        res.send(data.toString()); 
    } ) 
} 
# from pandas import read_csv
from math import sqrt
from datetime import datetime
print("reached")

Приведенный выше код Python не будет запускаться из-за импорта панд, но будет работать приведенный ниже код:

from math import sqrt
from datetime import datetime
print("reached")

Любые советы будут с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...