Python 我可以在没有node.js的情况下使用Electron吗

Python 我可以在没有node.js的情况下使用Electron吗,python,electron,electron-builder,electron-packager,Python,Electron,Electron Builder,Electron Packager,我是Javascript新手,所以我想把它保持在最低限度。有没有一种方法可以让我不用node.js就可以使用Electron与python脚本通信?我的应用程序只是一个基本的应用程序,它从html页面接收用户的一些输入,我需要用python处理这些文本输入并编写一个excel文件。所以html中没有太多内容,那么有没有一种简单的方法将输入传输到python文件?我想使用Electron,因为我需要这个html作为我的UI,也需要分发这个应用程序。我想答案是“否”:主进程运行节点将始终在那里 El

我是Javascript新手,所以我想把它保持在最低限度。有没有一种方法可以让我不用node.js就可以使用Electron与python脚本通信?我的应用程序只是一个基本的应用程序,它从html页面接收用户的一些输入,我需要用python处理这些文本输入并编写一个excel文件。所以html中没有太多内容,那么有没有一种简单的方法将输入传输到python文件?我想使用Electron,因为我需要这个html作为我的UI,也需要分发这个应用程序。

我想答案是“否”:主进程运行节点将始终在那里

Electron应用程序由一个JavaScript主进程和一个或多个JavaScript渲染器进程组成。没有内置的Python支持。用户需要已经安装Python。所以,这听起来很不适合你的需要


可能会很有用,并将显示如何调用python脚本。我快速浏览了一下上面提到的工具包。它似乎与用户的浏览器一起工作,而不是生成单个可执行文件。

最近,我用某种技巧完成了它,希望它能帮助您,我遵循了以下步骤-

  • 使用pyinstaller创建了一个独立的python exe,exe在内部具有flask服务器,然后我将flask服务器放在我的节点应用程序中
  • 现在我们必须启动flask服务器并向其发送请求以进行处理,我在“execFile”函数作为子进程的帮助下完成了这项工作,为此我创建了一个函数,代码如下-

    异步函数callFlask(){
    var child=require('child_process')。execFile;
    child('path_to_python_exe',函数(err,data){
    如果(错误){
    控制台错误(err);
    返回;
    }
    });
    }

  • 现在我们已经启动了flask服务器,然后将在fetch请求的帮助下发送请求,如

    wait callFlask()。然后(
    等待提取('host\u ip\u defined\u in\u flask'+encodeURIComponent('data'))

  • 现在,我们可以进一步扩展then链,从python获得响应(如果有的话),并进一步进行示例-
  • wait callFlask()。然后(
    等待获取('host_ip_defined_in_flask'+encodeURIComponent('data'))
    。然后(res=>res.text())
    。然后(body=>console.log(body)))

    在这里,python返回的输出数据将在控制台中打印出来,然后您可以根据节点应用程序返回的输出使其行为不同

  • 此外,您还可以使用适用于electron-like-electron-packager的可用打包程序打包应用程序,它将像一个魔咒一样工作
  • 另外,使用python还有一些缺点,因为它会增加包的大小,并且处理后很难从电子杀死进程,因此会增加主机的负担


    我假设解释创建flask服务器不是这个问题的范围,如果您遇到任何问题,请告诉我,我希望这会有所帮助…

    在“没有node.js”的情况下意思是说,没有在你的机器上安装它?Electron有自己的节点,所以当你运行Electron应用程序时,节点总是在运行,但是你不需要在你的机器上安装它来运行应用程序。但是,如果我用python编写后端,你需要在你的机器上安装它来开发Electron应用程序。用户需要安装python吗我的意思是,electron安装程序是否像PyInstaller一样,用户不需要python来执行文件?实际上,我放弃了electron并使用了Eel。Eel非常简单,非常适合我使用。无论如何,谢谢