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

Arm64架构下PyQt5安装突然失败(SIP相关问题)

解决Xcode15升级后ARM64 macOS编译PyQt5失败(Q_PID未定义)的问题

问题核心

升级Xcode15后编译PyQt5源码时触发Q_PID is undefined错误,本质是Xcode15的SDK移除了Qt5中Q_PID的typedef定义,但PyQt5的SIP绑定代码未同步适配。

可行解决思路

1. 手动修改SIP绑定代码(适配Xcode15)

临时编译目录的文件会被自动清理,建议下载源码包手动修改:

  • 下载PyQt5源码包:
    pip download pyqt5 --no-binary :all:
    
  • 解压下载的.tar.gz包,进入sip/QtCore目录
  • 打开qprocess.sip,找到报错的第99行,把Q_PID替换成pid_t(Q_PID原本就是pid_t的别名)
  • 回到源码根目录,重新执行安装命令:
    pip install . --config-settings --confirm-license= --verbose
    

2. 用Conda直接安装预编译包(跳过源码编译)

Conda-forge提供了ARM64架构的PyQt5预编译包,无需手动编译:

  • 先安装适配ARM64的Miniforge/Conda环境
  • 创建并激活虚拟环境:
    conda create -n pyqt_env python=3.10
    conda activate pyqt_env
    
  • 安装PyQt5:
    conda install pyqt=5
    

3. 临时降级Xcode到14.x版本

如果暂时不想修改代码或切换环境,可以降级Xcode:

  • 从Apple开发者平台下载Xcode14.x的安装包
  • 卸载Xcode15,安装14.x后执行:
    xcode-select -s /Applications/Xcode.app/Contents/Developer
    
  • 重新执行之前的PyQt5编译安装命令即可恢复正常

4. 升级到PyQt6(长期适配方案)

PyQt6官方提供ARM64架构的pip预编译包,无需编译:

  • 直接安装:
    pip install pyqt6
    
  • 注意:需要调整项目代码适配PyQt6的API变化(比如模块导入路径、部分类/方法名变更)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:37:02