Electron 在 MacOS 下怎么像 Windows 一样调用 exe?

2022-01-04 15:36:53 +08:00
 Te11UA
目前实现了在 Windows 下的一个 Electron APP ,里面有一个功能是要调用起一个 exe ,而这个 exe 是用 python 开发的。
现在这个 APP 需要兼容 MacOS ,但我没找到如何调用的方法,因此想请教一下大佬们如何实现?
2438 次点击
所在节点    Electron
17 条回复
murmur
2022-01-04 15:41:04 +08:00
windows 下的 exe 是不是就是 mac 下的 shell 指令

只要 shell 能调起来的理论都可以

还是你要打开第二个 app
wszgrcy
2022-01-04 15:45:11 +08:00
是.exe 还是指的可执行应用程序?后者的话没啥问题,前者不要尝试了...
Te11UA
2022-01-04 15:46:09 +08:00
@murmur #1 是的,算是 shell 指令,但是是 pyinstaller 打包好了的一个 exe 。不太了解 MacOS ,感觉是要打开第二个 app 。
Te11UA
2022-01-04 15:48:34 +08:00
@wszgrcy #2 是可执行应用程序,但不知道怎么调用,想请教下应该看哪些资料呢?
murmur
2022-01-04 15:49:10 +08:00
@Te11UA 真的是 exe ,你首先得想办法把里面的 python 文件拆出来单独执行
dingwen07
2022-01-04 15:54:31 +08:00
如果是软件包(“.app 目录”),难道是直接用 open 命令或者运行目录下的可执行文件( Contents/MacOS/)?
ysc3839
2022-01-04 15:58:08 +08:00
PyInstaller 打包的话,建议你解包后反编译,然后直接在 macOS 下运行。如果可以的话把 exe 发出来看看吧。
lichdkimba
2022-01-04 16:00:37 +08:00
你有 python 代码的话建议重新打个包……
Te11UA
2022-01-04 16:03:07 +08:00
@murmur #5
@ysc3839 #7 当前项目是有 python 文件,但是不允许源码运行,需要打包为可执行文件进行操作,只是我不太清楚该怎么调用,是 pyinstaller 打包完 app 就可以直接运行了吗?
Te11UA
2022-01-04 16:03:43 +08:00
@lichdkimba #8 有的,是可以直接调用 app 吗?只要 electron 打包把资源弄在一起就好啦?
ysc3839
2022-01-04 16:20:00 +08:00
@Te11UA 为什么不允许源码运行?不过如果真的不可以,那再用 PyInstaller 打包成 macOS 的即可。
ysc3839
2022-01-04 16:20:55 +08:00
另外还是建议提供更详细的信息,最好能说说这个 Python 程序是干什么的,说不定可以直接用 Electron 实现。
Te11UA
2022-01-04 16:22:31 +08:00
@ysc3839 #11 感谢!功能是 electron 不支持的,因为属于另外一个项目组。我先试试调用`open .app`哈~
whi147
2022-01-04 21:49:31 +08:00
挺奇怪的。根据我在 mac 开发客户端的经验来看。macos 上的应用在外层是一个文件夹叫.app ,双击的时候实际上执行内部一个 shell 文件,然后 shell 就会加载资源,界面这样。所以打开程序应该是打开里面的 shell 文件
whi147
2022-01-04 21:51:30 +08:00
electron 不是配搭 c++的么,怎么在外面跑了个 python ,很臃肿诶,这不是一个做客户端的方案
Te11UA
2022-01-11 11:35:44 +08:00
@whi147 #15 的确是臃肿了,但是是一些未预料的技术选型问题,不好改动了。感谢!
Te11UA
2022-01-11 11:36:36 +08:00
解决方案:pyinstaller 打包了文件后是可以直接运行的,跟 Windows 无异,所以就还是按 win 下的处理方式进行调用了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/826124

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX