我一直在尝试遵循npm pythonshell here的文档。我只是想获得一个简单的示例,使其无法正常运行,网上没有太多示例,但是我确实尝试遵循此one on stackoverflow。那么我的代码到底有什么问题呢?我不太确定为什么会出现以下错误。我对python更加满意,nodejs对我来说是新领域。感谢您的任何帮助。

test.py代码:

print("This is a test")

带有pythonshell测试的 Node.js:
var PythonShell = require('python-shell');

    var options = {
      mode: 'text',
      pythonPath: '/bin/bash/python2',
      pythonOptions: ['-u'],
      scriptPath: './TestProject/',
      args: ['value1', 'value2', 'value3']
    };

    PythonShell.run('test.py', options, function (err, results) {
      if (err) throw err;
      // results is an array consisting of messages collected during execution
      console.log('results: %j', results);
    });

这是我的错误
    internal/child_process.js:313
    throw errnoException(err, 'spawn');
    ^

Error: spawn ENOTDIR
    at exports._errnoException (util.js:1022:11)
    at ChildProcess.spawn (internal/child_process.js:313:11)
    at exports.spawn (child_process.js:387:9)
    at new PythonShell (/home/nomad/TestProject/node_modules/python-shell/index.js:59:25)
    at Function.PythonShell.run (/home/nomad/TestProject/node_modules/python-shell/index.js:159:19)
    at Object.<anonymous> (/home/nomad/TestProject/app.js:11:13)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)

最佳答案

因此,我犯了一个错误,即没有在新系统安装中检查我的python路径,但是使用绝对路径也是使脚本起作用的必要条件。这是一个尝试使用nodejs python-shell npm运行python脚本的人的工作示例。感谢Bryan帮助我解决javascript错误。

var PythonShell = require('python-shell');

    var options = {
      mode: 'text',
      pythonPath: '/usr/bin/python',
      pythonOptions: ['-u'],
      // make sure you use an absolute path for scriptPath
      scriptPath: '/home/username/Test_Project/Python_Script_dir',
      args: ['value1', 'value2', 'value3']
    };

    PythonShell.run('test.py', options, function (err, results) {
      if (err) throw err;
      // results is an array consisting of messages collected during execution
      console.log('results: %j', results);
    });

10-06 10:32