苹果硅Mac下如何将Python文件打包为exe并解决PyInstaller报错
报错原因
AssertionError: Sanity check failed!报错是苹果硅(M系列)芯片macOS设备上旧版本PyInstaller的已知bug,由二进制签名校验逻辑不兼容ARM架构导致。额外需要明确:macOS原生环境下直接运行PyInstaller默认只能生成macOS可用的可执行程序,无法直接生成Windows平台的.exe文件。
可行解决方案
方案1:虚拟机Windows环境打包(兼容性最高,优先推荐)
- 在苹果硅Mac上安装Parallels Desktop、VMware Fusion等虚拟机软件,部署Windows 10/11 ARM版系统
- 将完整项目拷贝到虚拟机Windows系统内,安装对应版本Python、项目依赖包和PyInstaller
- 直接在Windows环境执行打包命令,关联资源文件使用
--add-data参数,示例命令:pyinstaller -F -w --add-data "assets;." 入口文件.py,打包生成的.exe文件存放在dist目录,无兼容性问题
方案2:Wine模拟Windows环境交叉打包
- 通过Homebrew安装wine运行环境:
brew install --cask wine-stable - 下载Windows版Python嵌入式包,解压到wine的虚拟C盘对应目录
- 在wine环境中安装PyInstaller和项目依赖:
wine python -m pip install pyinstaller 依赖包名称 - 进入项目根目录执行打包命令:
wine pyinstaller -F -w --add-data "assets;." 入口文件.py,生成的.exe文件可直接在Windows运行
方案3:仅需macOS可执行程序的修复方案
- 升级PyInstaller到最新版本,修复签名校验bug:
pip3 install --upgrade pyinstaller - 打包时添加
--no-sign参数跳过签名校验步骤,示例命令:pyinstaller --no-sign -F -w --add-data "assets:." 入口文件.py,macOS下资源路径分隔符使用冒号
内容的提问来源于stack exchange,提问作者Magprone
相关产品推荐
相关产品推荐

