我正试图从我的节点js代码中调用python脚本。它适用于python代码中的打印功能,下面的代码为
节点JS代码
const { spawn } = require('child_process');
const pyProg = spawn('python', ['app.py']);
pyProg.stdout.on('data', function(data) {
console.log(data.toString());
});
pyProg.stderr.on('data', (data) => {
console.log('Error-->'+ data);
});
使用Python代码app.py
print('Hello')
然而,如果在脚本中我包括import joblib或任何python模块,如
Python脚本
import joblib
import sys
def getGenre(age,sex):
print(age)
print(sex)
input=[[0, 0]]
input[0][0]=age
input[0][1]=sex
print(input)
model=joblib.load('testModel.joblib')
prediction=model.predict(input)
print(prediction)
print('Start')
getGenre(50, 1)
print('End')
它正在失败,并出现以下错误。
ModuleNotFoundError:导入的模块没有名为"joblib"的模块
有人能告诉我,我缺了什么吗。
我可以在执行之前使用以下代码显式安装python模块
Python
import os
import sys
os.system('python3 -m pip install {}'.format(sys.argv[1]))
os.system('python3 -m pip install {}'.format(sys.argv[2]))
os.system('python3 -m pip install {}'.format(sys.argv[3]))
节点
const { spawn } = require('child_process');
const pyProg = spawn('python', ['pyfiles/install_package.py',"joblib","sklearn","pandas"]);
pyProg.stdout.on('data', function(data) {
console.log(data.toString());
});
pyProg.stderr.on('data', (data) => {
console.log('Error-->'+ data);
});