You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包的.app在同版本Mac无法运行的技术求助

解决PyInstaller打包Mac App在同版本系统闪退的问题

我之前也踩过PyInstaller打包Mac应用的坑,结合你的情况,给你几个具体的排查和解决方向:

1. 先获取崩溃的错误日志(最关键!)

因为GUI闪退不会显示错误信息,让对方打开终端,直接运行app包里的可执行文件:

/Applications/Shadowmaster.app/Contents/MacOS/Shadowmaster

把终端输出的错误信息发过来,就能精准定位问题——大概率是某个依赖没打包进去,或者路径配置错了。

2. 修正hiddenimports里的拼写错误

你的spec文件里hiddenimports写了tracback,这明显是traceback的拼写错误!PyInstaller打包时会漏掉这个标准库,运行时找不到就直接崩溃。赶紧改成traceback,重新打包试试。

3. 检查tkinter的打包完整性

tkinter作为GUI库,PyInstaller有时候会漏打包它的一些资源文件(比如主题、图标等)。你可以试试:

  • 重新生成spec文件时加上--collect-all tkinter参数:
    pyinstaller --collect-all tkinter --windowed --icon=icon.icns Shadowmaster.py
    
  • 或者手动在spec的datas里添加tkinter的资源路径,先在你的Python里运行:
    import tkinter
    print(tkinter.__file__)
    
    找到tkinter的安装目录,把整个tkinter目录加到datas里,比如:
    datas=[('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter', 'tkinter')],
    

4. 关闭UPX压缩

有时候UPX压缩会破坏Mac系统下的可执行文件,尤其是和系统库交互的部分。把spec文件里的两处upx=True改成upx=False,重新打包后测试。

5. 修正Info.plist的配置错误

你的info_plist里CFBundleExecutable设置成了MacOS/Shadowmaster,这是错误的——这个字段只需要填可执行文件的名字Shadowmaster,不需要路径。系统会自动在Contents/MacOS目录下找它,路径填错会导致系统找不到可执行文件,直接闪退。

6. 确认系统依赖完整性

虽然两台都是macOS 10.13.2,但让对方检查是否安装了Xcode命令行工具:

xcode-select --install

有些Python标准库依赖系统的编译组件,缺失的话也会导致运行失败。

按这个顺序排查,应该能解决你的问题!

内容的提问来源于stack exchange,提问作者Jacob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:48:40