MacOS 10.12.6下PyInstaller打包pygame游戏抛出AssertionError如何解决?
MacOS Sierra下PyInstaller打包
Executable contains code signature错误解决方案 该错误触发原因是系统中安装的官方Python框架自带预签名,旧版PyInstaller在处理带签名的可执行文件时会触发断言校验失败,在10.12.6这类低版本MacOS上出现概率极高,可通过以下方案解决:
- 方案一:更换适配的PyInstaller版本
先卸载当前PyInstaller:pip uninstall pyinstaller
再安装对低版本MacOS兼容性最好的4.10版本:pip install pyinstaller==4.10
安装完成后重新执行打包命令即可,绝大多数场景下可直接解决问题。 - 方案二:手动移除Python解释器的签名
若更换版本后仍报错,可直接移除当前使用的Python可执行文件的自带签名,执行命令如下(路径和你报错信息中的Python路径保持一致即可):codesign --remove-signature /Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8
执行完成后重新发起打包操作即可。 - 方案三:打包时追加关闭签名参数
执行打包命令时直接添加--no-codesign参数跳过签名校验,pygame游戏打包参考命令如下:pyinstaller --onefile --windowed --no-codesign 你的游戏主脚本文件名.py
其中--windowed参数可以避免游戏运行时弹出多余的终端窗口,按需使用即可。
补充提示:如果需要打包后的可执行文件也能在其他同版本或更低版本的MacOS上运行,可以在执行打包命令前先执行
export MACOSX_DEPLOYMENT_TARGET=10.12指定兼容系统版本,能有效降低其他设备运行时的兼容报错概率。
内容的提问来源于stack exchange,提问作者xxSirFartAlotxx
相关产品推荐
相关产品推荐

