Node js-> python 脚本。ModuleNotFoundError:导入的模块没有名为"joblib"的模块



我正试图从我的节点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);
});

最新更新