PyInstaller生成的macOS GUI程序运行后自删除报错求助
macOS下PyInstaller打包tkinter程序运行被kill的解决办法
可能的原因及解决步骤
权限与签名问题
macOS对未签名的程序会触发安全拦截,尤其是新系统版本。可以:- 手动给可执行文件签名:
codesign --force --deep --sign - /Users/username/Documents/dist/programname/programname - 打开「系统设置-隐私与安全性」,找到被阻止的程序条目,点击「允许」后重新运行。
- 手动给可执行文件签名:
tkinter依赖未完整打包
PyInstaller有时会漏打包tkinter的系统依赖,试试:- 打包时添加
--collect-all tkinter参数强制收集所有tkinter相关文件:pyinstaller --collect-all tkinter your_script.py - 换用brew安装的Python重新打包(避免系统自带Python的权限限制):
brew install python pip install pyinstaller pyinstaller your_script.py
- 打包时添加
资源或内存问题
检查程序启动时是否加载了过大资源,或者存在内存泄漏。可以在终端运行top命令,实时观察程序运行时的内存占用情况,定位异常点。安全软件拦截
暂时关闭第三方防火墙、杀毒软件,再尝试运行程序,排除拦截可能。
调试手段
- 用
--debug参数重新打包,获取更详细的错误日志:pyinstaller --debug your_script.py - 运行可执行文件时加
-v参数,打印启动过程的详细输出:/Users/username/Documents/dist/programname/programname -v
内容的提问来源于stack exchange,提问作者erduley
相关产品推荐
相关产品推荐

