我一直在尝试按照npm pythonshell here的文档进行操作。我只想尝试一个简单的例子来正常运行但没有成功,在线的例子不多,但我确实试着遵循这个one on stackoverflow。那么我的代码到底出了什么问题呢?我不确定为什么我会收到以下错误。我在python中更舒服,nodejs对我来说是新的领域。谢谢你的帮助。
test.py代码:
print("This is a test")
使用pythonshell测试的Nodej:
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)
答案 0 :(得分:3)
所以我犯了一个错误,就是不在新的系统安装上检查我的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);
});