Python не работает правильно при вызове из приложения nodejs с дочерним процессом - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь запустить скрипт Python, который использовал модель глубокого обучения для классификации изображения, независимо от того, является он NSFW или нет, я использую этот скрипт отсюда https://github.com/yahoo/open_nsfw и пользовательскую модель.Скрипт python работает нормально при вызове напрямую с python, но при вызове из приложения nodejs через дочерний процесс скрипт останавливается на этой строке

# Pre-load caffe model.
nsfw_net = caffe.Net(model_def, pretrained_model, caffe.TEST)

Все остальное в python работает нормально.И сценарий запуска напрямую тоже отлично работает.Почему он не работает при вызове из дочернего процесса?

Когда я запускаю его из приложения узла, как это

    const cp = require("child_process")
    const spawn = cp.spawn;
    const pythonProcess = spawn('python',['/home/ubuntu/classify.py']);

    pythonProcess.stdin.write(req.body.image, function(err){
        pythonProcess.stdin.end();
    });

    pythonProcess.stdout.on('data', (data) => {
            console.log("message from python:" + data)
        });

    pythonProcess.stdout.on("end", (data) => {
        console.log("end received data: " + data);
        res.status(200);
        res.end(); 
    });

1 Ответ

0 голосов
/ 10 июня 2019

Я исправил это, добавив pythonProcess.stderr.pipe(process.stderr); в мое приложение nodejs, а затем я смог увидеть ошибки Python и исправить их.В скрипте Python были ошибки.

...