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

Mac M1芯片执行Python脚本报错(M2芯片运行正常)求解决方案

Mac M1运行PyQt5脚本出现Symbol not found错误的解决思路

这个错误是因为PyQt5依赖的QtCore框架调用了系统libc库中不存在的C标准库符号,核心原因是M1和M2的系统环境、依赖库版本或软件架构适配性差异导致的,以下是具体解决方向:

  • 检查并升级系统版本
    错误中的__ZTVNSt3__13pmr25monotonic_buffer_resourceE是C17引入的符号,如果你M1的系统版本低于macOS Ventura(13.0),系统自带的libc库可能没有这个符号。对比M2的系统版本,把M1的macOS升级到同版本或更高版本,再重新运行脚本。

  • 重新安装适配M1原生架构的PyQt5

    1. 先卸载现有PyQt5:
      pip uninstall -y PyQt5
      
    2. 确保你的Python是M1原生arm64版本,执行以下命令验证:
      python3 -c "import platform; print(platform.machine())"
      
      如果输出是x86_64,说明你用的是Rosetta转译的Python,需要重新安装arm64架构的Python(比如从Python官网下载arm64安装包,或用pyenv安装arm64版本)。
    3. 安装适配arm64的PyQt5,优先选择支持Python3.12的版本:
      pip install PyQt5==5.15.10
      
      若仍有问题,尝试强制从源码编译安装:
      pip install PyQt5 --no-binary :all:
      
  • 切换到PyQt6替代PyQt5
    PyQt6对Apple Silicon的兼容性更好,且完全支持Python3.12:

    1. 卸载PyQt5并安装PyQt6:
      pip uninstall -y PyQt5 && pip install PyQt6
      
    2. 修改脚本中的导入语句,适配PyQt6的API(比如from PyQt5 import QtCore, QtGui, QtWidgets改为from PyQt6 import QtCore, QtGui, QtWidgets,部分类的使用方式有细微调整)。
  • 降级Python版本
    Python3.12属于较新版本,部分PyQt5版本的适配性可能不足。可以降级到Python3.11(对PyQt5兼容性更成熟),再重新安装PyQt5测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:42:36