首页 > 解决方案 > 单击 .app 后 Node.Js 子进程不会启动,但如果从 unix 可执行文件运行时会启动

问题描述

我正在使用带有 python 后端的 ElectronJS 开发应用程序。Electron 和 Python 通过 python 进行通信,使用 flask 来托管一个返回 JSON 等的网络服务器。

这是我的情况 - 通过右键单击 .app,然后进入 Contents/MacOS 并在其中运行 unix 可执行文件,该应用程序运行良好。但是,如果我只是双击 .app,python 后端不会启动。

我不确定如何查看控制台输出以查看启动 python 的命令出了什么问题,但这里是启动 python 进程的行 -

pythonBackend = require('child_process').spawn('/Library/Frameworks/Python.framework/Versions/3.8/bin/python3', [String(__dirname) + '/main.py'], {stdio: [process.stdin, process.stdout, process.stderr], detached: false});

我使用了很多存储在用户机器上的配置文件,所以在我看来摆脱 Electron 并仅仅托管在云中并不是一个好的选择,但我可能是错的。

该软件未签名或验证,所以我想知道如果您未签名,这是否可能是 MacOS 阻止执行 shell 命令/脚本的问题。

标签: javascriptpythonmacoselectronelectron-forge

解决方案


推荐阅读