我无法从node.js运行我的Python代码。
以下是我想要运行的Python代码:
from preprocessor import pad_vec_sequences, labels
from keras.models import load_model
import spacy
from preprocessor import nlp
import numpy as np
import sys
from dependency_tree import to_nltk_tree , to_spacy_desc
print('Hi')
此代码使用python demo.py
从终端成功运行,并且已安装所有库。
我正在使用python 3.5。
现在我想用JS调用这段代码:
app.post( '/api/message', function(req, res) {
PythonShell.run('demo.py', {
args: [req.body.input.text], pythonPath : '/usr/bin/python3'
}, function (err, results) {
console.log(results);
return res.json({
'input' : {
'text' : ''
},
'output': {
'text': results //+
//'<img src="http://localhost:8080/Finance/image1.jpg" class="imageclass">'
}
})
});
});
在上面的代码中,我将pythonPath
选项设置为python3.5,因此node.js启动的python shell是python3.5。我希望Python代码将Hi
返回给JS。
但这不起作用。 JS没有收到demo.py
的任何文字。如果我删除所有import
语句,则代码可以正常工作。在删除import
语句时,Python代码调用成功返回Hi
。
因此,从JS调用的Python代码看起来像导入语句不起作用。但是从终端调用时,相同的Python代码也可以工作。我也确保两种情况都使用python3.5。
这是什么问题?
更新
import sys
print(sys.executable)
...输出/usr/bin/python3
。我把它放在pythonPath
的JS代码中,但我的代码仍无效。