在 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);
exec
或 execFile
似乎不允许我以 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)