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

M1 Mac运行PyQt6项目报mach-o架构不兼容(x86_64需arm64e)如何解决

问题根因

你遇到的架构不匹配报错和你猜想的arm64e、arm64差异无关,核心问题是你当前使用的Python是x86_64版本(通过Rosetta2转译运行),对应安装的PyQt6库也是x86_64架构,和你当前运行环境要求的arm架构不兼容。你当前用的/usr/local/bin/python3就是M1 Mac上典型的x86版本Python路径,原生arm版本的第三方软件默认会安装到/opt/homebrew路径下。

解决方案

按优先级推荐两种处理方式:

  • 优先使用原生arm架构Python(性能更好,无兼容隐患)
    1. 先卸载当前x86环境下安装的PyQt6相关组件:
    /usr/local/bin/python3 -m pip uninstall PyQt6 PyQt6-Qt6 PyQt6-sip -y
    
    1. 安装适配arm64架构的Python,可直接从Python官网下载3.9及以上版本的arm安装包,也可通过arm版Homebrew执行brew install python3安装
    2. 用新安装的arm版Python重新安装PyQt6:
    # 替换为你arm版Python的实际路径
    /path/to/arm/python -m pip install PyQt6
    
    1. 用新的Python路径运行你的项目代码即可
  • 临时兼容方案(不推荐长期使用)
    右键点击终端应用,选择「显示简介」,勾选「使用Rosetta打开」,重启终端后直接运行原有代码即可正常加载x86版本的PyQt6库。
代码语法修正

除了架构问题,你的代码还存在几处语法错误,架构问题修复后需要修正以下内容才能正常运行:

  • QWidget.__init___(self) 多写了一个下划线,修正为QWidget.__init__(self)
  • self.load_depts、self.load_emps 两行调用方法时缺括号,修正为self.load_depts()、self.load_emps()
  • for i, e in self.emps: 缺遍历枚举方法,修正为for i, e in enumerate(self.emps):

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:36:03