从本地 JavaScript 应用调用 Python 脚本

Call Python script from local JavaScript App

所以我现在环顾四周,但没能找到我认为我遇到的用例。

一些背景: 我是 JavaScript 的新手,从来没有用它调用任何其他 program/script。现在我确实开发了一个 Python 脚本,它从在线资源中提取一些数据,对其进行格式化并将其转储到 JSON 文件中。为了以正确的方式显示这些数据,我想我会使用 Electron。

虽然处理 JSON 文件完全没问题(我猜如果不是这样会很伤心),但我需要能够调用 Python 脚本更新我的数据电子UI。由于一切都是本地的,我希望有一种更简单的方法,而不是为 Python 脚本设置一些服务器以 [​​=34=] on,只是为了能够从我的桌面应用程序触发它的执行。尤其如此,因为我什至不需要获取或处理任何 returns,我只想触发该脚本的执行。

所以现在的问题是:是否有这样一种 "easy" 方法可以从基于 Electron/JavaScript 的本地保存的桌面应用程序执行 Python 脚本?

提前感谢您的回答!

就像前面提到的评论者一样,您应该能够在 Node.js 中关注 this SO answer(这是 Electron 使用的)。

为了稍微解释一下这个答案,我建议使用 built-in Python JSON utility to dump JSON to the standard out (just printing out the JSON string), and the using the built-in Node.js JSON utility 将 JSON 字符串解析为 javascript 对象,以便在您的应用程序中使用。

好吧,所以在被重定向到 this thread 之后,如果您对此问题感兴趣,我只能建议您通读,我采用了他们的解决方案并做了一些修改,这花了我一些时间,由于一些困惑,我现在想饶过你们!

重新引入问题:目标是从基于 JavaScipt/Electron 的 UI 调用 python 脚本。 python脚本只需要执行,但需要在点击时发生,因为它是一个更新函数。

现在这是我使用的代码:

const exec = require("child_process").exec;

function triggerUpdateAndRefreshFooter() {
  exec('python relativePathToScript/update.py',
    function(error, stdout, stderr) {                    //callback function, receives script output
      refreshFooter();                                  //don't use the output, but I could here
    }
  )
}

我在弄清楚另一个线程中的所有 const 内容时确实遇到了一些问题,并且不得不猜测我是否可以在单独的函数中执行我的脚本。最后这确实奏效了!

希望对您有所帮助!