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

从Intel Mac迁移到M1 Mac后Python程序ImportError报错如何解决?

解决M1 Mac上Python依赖架构不兼容问题

核心原因

错误提示明确显示Pillow的_imaging扩展库是x86_64架构,但M1 Mac需要arm64e架构。这是因为迁移过来的Python环境或依赖包是基于Intel平台编译的,无法在ARM架构的M1上正常运行。

修复步骤

  1. 检查当前Python架构
    执行以下命令确认Python编译时使用的架构:

    python -c "import platform; print(platform.machine())"
    

    如果输出x86_64,说明当前pyenv管理的Python 3.10.0是Intel版本,需要重新编译为ARM版本。

  2. 重新编译ARM架构的Python 3.10.0

    • 卸载现有Intel版本的Python:
      pyenv uninstall 3.10.0
      
    • 清理pyenv缓存(避免残留Intel编译文件):
      rm -rf ~/.pyenv/cache/3.10.0*
      
    • 设置编译参数为ARM架构:
      export ARCHFLAGS="-arch arm64"
      
    • 重新安装Python 3.10.0:
      pyenv install 3.10.0
      
    • 设置该版本为全局或项目局部使用:
      # 全局设置
      pyenv global 3.10.0
      # 或项目目录局部设置
      pyenv local 3.10.0
      
  3. 彻底清理并重装依赖包

    • 卸载现有的matplotlib和Pillow:
      pip uninstall -y matplotlib pillow
      
    • 删除用户目录下残留的旧Pillow文件(若有):
      rm -rf ~/.local/lib/python3.10/site-packages/PIL
      
    • 重新安装依赖:
      pip install matplotlib
      
      此时pip会自动适配ARM架构下载或编译对应版本的包,无需添加--no-binary :all:参数。
  4. 验证修复结果
    执行以下命令检查Pillow扩展库的架构:

    lipo -info $(python -c "import PIL; print(PIL.__path__[0])")/_imaging.cpython-310-darwin.so
    

    若输出Non-fat file: ... is architecture: arm64,说明架构已正确适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:22:59