我一直在尝试遵循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);
});