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

Apple M1 Max安装Python依赖时cffi等编译失败求助

解决Apple M1 Max Ventura 13.0.1下Python 3.8依赖编译失败问题

问题背景

设备:Apple M1 Max,系统Ventura 13.0.1,Python 3.8.15,Pip 22.3.1
执行pip install -r requirements.txt时,cffi、numpy、pillow、reportlab均出现编译失败,核心错误提示:无法为numpy构建wheel以安装基于pyproject.toml的项目。已尝试升级pip、手动安装组件、重建venv等操作,问题未解决。


解决方案

1. 启用Rosetta 2兼容环境(优先推荐)

M1芯片为arm64架构,Python 3.8对应的部分旧依赖无预编译arm64 wheel,通过Rosetta模拟x86_64环境可规避编译问题:

  • 安装Rosetta:
    softwareupdate --install-rosetta
    
  • 右键终端图标,选择「新建位于Rosetta的终端窗口」
  • 在新终端中重建虚拟环境并安装依赖:
    python3.8 -m venv venv_x86
    source venv_x86/bin/activate
    pip install --upgrade pip setuptools wheel
    pip install -r requirements.txt
    

2. 补全编译依赖工具

编译失败多因缺少底层系统库或编译工具:

  • 安装Xcode命令行工具:
    xcode-select --install
    
  • 通过Homebrew安装编译依赖库:
    brew install openssl libjpeg zlib
    
  • 设置环境变量让pip识别这些库:
    export LDFLAGS="-L/opt/homebrew/opt/openssl/lib -L/opt/homebrew/opt/zlib/lib -L/opt/homebrew/opt/libjpeg/lib"
    export CPPFLAGS="-I/opt/homebrew/opt/openssl/include -I/opt/homebrew/opt/zlib/include -I/opt/homebrew/opt/libjpeg/include"
    
  • 重新执行依赖安装:
    pip install -r requirements.txt
    

3. 指定兼容版本的依赖包

Python 3.8与arm64架构的适配性有限,降级部分包到兼容版本:

  • 修改requirements.txt中相关包的版本:
    numpy==1.23.5
    pillow==9.2.0
    cffi==1.15.1
    reportlab==3.6.12
    
  • 执行安装命令:
    pip install -r requirements.txt
    

4. 使用Conda管理依赖

Conda针对M1芯片提供了大量预编译的arm64包,可避免编译步骤:

  • 安装适配arm64的Miniforge3
  • 创建并激活Python 3.8环境:
    conda create -n py38_env python=3.8
    conda activate py38_env
    
  • 安装依赖:
    conda install --file requirements.txt
    
    若Conda无法找到部分包,再用pip补充安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:30:26