我目前的电子项目有以下文件结构:
<PROJECT>
<css>
<js>
<data>
<scripts>
script.py
index.html
main.js
package.json
在main.js
我有
var ipc = require('electron').ipcMain;
ipc.on('asynchronous-message', function (event, arg) {
var py = require('child_process').spawn('python', ['./scripts/script.py']);
py.on('close', function() {
event.sender.send('asynchronous-reply', '');
});
});
但是python脚本(实际上生成一个输出文件)似乎根本没有运行。如果我将脚本从scripts
文件夹中取出并放在main.js
文件旁边的顶级文件夹中,并将spawn
agruments数组更改为['./script.py']
,跑得很好。我不完全确定上面代码的哪一部分导致脚本无法执行。
答案 0 :(得分:1)
始终使用绝对路径,创建一个相对于当前源文件的前缀__dirname
,例如:
const path = require('path');
const scriptFilename = path.join(__dirname, 'scripts', 'script.py');