V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Te11UA
V2EX  ›  Electron

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

  •  
  •   Te11UA · 2022-01-04 15:36:53 +08:00 · 2409 次点击
    这是一个创建于 1052 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前实现了在 Windows 下的一个 Electron APP ,里面有一个功能是要调用起一个 exe ,而这个 exe 是用 python 开发的。
    现在这个 APP 需要兼容 MacOS ,但我没找到如何调用的方法,因此想请教一下大佬们如何实现?
    17 条回复    2022-01-11 11:36:36 +08:00
    murmur
        1
    murmur  
       2022-01-04 15:41:04 +08:00
    windows 下的 exe 是不是就是 mac 下的 shell 指令

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

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