Electron / Node.js - 如何从另一个目录生成python脚本

时间:2016-05-27 21:49:54

标签: javascript node.js file electron

我目前的电子项目有以下文件结构:

<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'],跑得很好。我不完全确定上面代码的哪一部分导致脚本无法执行。

1 个答案:

答案 0 :(得分:1)

始终使用绝对路径,创建一个相对于当前源文件的前缀__dirname,例如:

const path = require('path');
const scriptFilename = path.join(__dirname, 'scripts', 'script.py');