在 Electron 中执行 unix 可执行文件(python)

Posted

技术标签:

【中文标题】在 Electron 中执行 unix 可执行文件(python)【英文标题】:Execute unix executables (python) in Electron 【发布时间】:2019-02-01 18:14:16 【问题描述】:

我的文件结构如下:

--backend/
---script (unix executable)
--src/
---script_launcher.js
---main.js
--all other necessary files

script 是一个 unix 可执行文件,我使用 pyinstaller 从 python 脚本构建。 script_launcher.js 应该启动 unix 可执行文件script,通过标准输入将参数传递给它并监听:任何标准输出/任何错误/脚本完成执行时。在 unix 可执行文件之前,我有一个 .py 文件,我将使用来自 script_launcher.js 的 python-shell npm module 调用它。我知道我应该使用child-processes,但是:

spawn 似乎只适用于 python 脚本而不适用于 unix 可执行文件(不允许我执行 script

const spawn = require("child_process").spawn; const pythonProcess = spawn("path/to/script", arg1, arg2);

execexecFile 似乎不允许我以 python-shell 让我阅读信息的方式阅读我上面描述的信息。

调用 unix 可执行文件的最佳方法是什么?另外,在调用它们时,我应该使用路径作为/path/to/script 还是/path/to/script.exec?我不太明白script 是否有文件扩展名。

【问题讨论】:

【参考方案1】:

只需传递可执行位置和命令行参数

const unixProcess = spawn('path/to/executable',[arg1, arg2, arg3, ...]);

例子

const unixProcess = spawn('/usr/bin/whoami',[arg1, arg2, arg3, ...]);

【讨论】:

嗨,感谢您的输入,但正如问题所述:我需要执行 unix 可执行文件,而不是 python 可执行文件。我已经可以执行 .py 文件了。抱歉,我刚刚在我的帖子中发现了一个错字 - 它应该在那里写成 unix 可执行文件。 如果你这样做,路径必须是绝对的。谢谢。

以上是关于在 Electron 中执行 unix 可执行文件(python)的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将 Electron 应用程序和数据文件嵌入到单个可执行文件中?

创建 Electron JS 可执行文件(electron-builder 或 electron-forge)

理解Unix可执行文件

如何使用 Electron 运行和打包外部可执行文件?

Electron builder - 如何为生产 Windows 可执行文件构建 loadURL

如何使用 NSFileManager 复制 UNIX 可执行文件?