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

从Intel Mac构建的Arm Mac Python可执行文件架构不兼容问题

解决Intel Mac打包Arm64 Python程序的regex架构不兼容问题

问题核心:在Intel Mac上直接打包时,Poetry默认安装的是x86_64架构的依赖(比如regex的二进制文件),即便PyInstaller指定了--target-arch=arm64,也无法替换依赖本身的架构,导致M1 Mac运行时出现架构不兼容错误。

解决步骤:

  • 清理现有环境,避免残留的x86_64依赖干扰
    rm -rf .venv
    poetry cache clear --all pypi
    
  • 强制以Arm64架构安装所有依赖
    用arch -arm64命令让Poetry在Rosetta模拟的Arm64环境下运行,这样安装的依赖(包括regex的二进制)都会是Arm64架构:
    arch -arm64 poetry install
    
  • 验证依赖架构(可选)
    检查regex的二进制文件架构,确认是Arm64:
    lipo -info .venv/lib/python3.11/site-packages/regex/_regex.cpython-311-darwin.so
    
    输出应包含arm64字样。
  • 以Arm64架构运行PyInstaller打包
    同样用arch -arm64前缀执行打包命令,确保PyInstaller基于Arm64环境处理依赖:
    arch -arm64 poetry run pyinstaller --onefile --target-arch=arm64 ./test_app/app.py
    

关键说明:

直接用Intel原生环境打包时,pip会优先拉取x86_64的轮子,而--target-arch只是告诉PyInstaller打包时的目标架构,无法改变已安装依赖的架构。通过arch -arm64强制切换运行架构,让Poetry安装对应Arm64的依赖,从根源解决架构不匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:36:07