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

MacOS M1开启Rosetta后Python包仍被识别为ARM架构报错如何解决

问题根因
  • 你执行的arch -x86_64 zsh仅将当前shell进程切换为x86_64模拟模式,但你使用的Python解释器本身是原生ARM64架构编译的版本。pip安装依赖时,pycocotools的C拓展模块会匹配Python解释器的架构编译,而非匹配shell的架构,因此哪怕终端运行在x86模式下,编译出来的_mask.cpython-39-darwin.so依然需要arm64e架构,和你安装的x86架构的依赖包不匹配。
  • 另一个可能的原因是pip缓存了之前下载/编译的pycocotools安装包,重新安装时直接复用了旧版本,没有重新匹配架构编译。
修复方案

方案1:继续使用Rosetta模拟运行

  1. 在Rosetta模式终端中,先验证Python解释器架构,执行命令:
    python3 -c "import platform; print(platform.machine())"
    如果输出为arm64,说明当前Python为原生ARM版本,需要先安装x86_64架构的Python版本,可在Rosetta终端下通过Homebrew安装,或直接从Python官网下载x86_64版本的Python安装包安装。
  2. 清除pip本地缓存,执行命令:
    pip cache purge
  3. 以x86_64架构的Python为基础新建虚拟环境,激活后重新安装layoutparser及所有依赖即可。

方案2:原生ARM架构直接运行(无需Rosetta)

直接在原生ARM终端中执行以下操作:

  1. 安装系统依赖:xcode-select --install
  2. 强制从源码编译适配ARM架构的pycocotools,执行命令:
    pip install --no-binary :all: pycocotools
  3. 重新安装layoutparser即可正常运行代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:36:04