簡體   English   中英

從nodejs應用程序調用時Python腳本不執行pickle.load

[英]Python script not executing pickle.load when called from nodejs app

我有一個 nodejs 應用程序,它從 controller 調用 python 腳本。 當我直接從終端運行時,腳本運行良好,從節點應用程序調用時也運行良好,但它只停留在這一特定行model = pickle.load(open("model.pkl", "rb"))上。 任何幫助,將不勝感激。

預測.py

import sys
import json
import pickle
import os

def get_size(weight, height, age):
  model = pickle.load(open("model.pkl", "rb"))
  return model.predict([[height,weight,age,bmi]])[0]
    
calculated_size = get_size(69,167,26)
print(calculated_size)
sys.stdout.flush()

結果.js

const scriptPath = path.dirname(require.main.filename) + '/python-scripts/predict.py';
const pythonProcess = spawn('python', [ scriptPath, 'user_inputs', JSON.stringify(results) ], {cwd: path.dirname(require.main.filename)+'/python-scripts'});
pythonProcess.stdout.on('data', async (data) => {
        console.log(data.toString());

})

通過在 spawn 中更改 python 版本來修復:

const pythonProcess = spawn('python3', [ scriptPath, 'user_inputs', JSON.stringify(results) ], {cwd: path.dirname(require.main.filename)+'/python-scripts'});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM