从JS

时间:2017-12-28 08:41:20

标签: javascript python node.js python-3.x python-3.5

我无法从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代码中,但我的代码仍无效。

0 个答案:

没有答案