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

Mac M1设备conda环境安装Python包及运行报错问题求助

问题根因

你遇到的illegal hardware instruction报错核心是架构不匹配,常见原因有三类:

  • 安装x86版本Miniforge时使用了Rosetta终端,但后续运行pytest的终端未开启Rosetta,系统尝试在原生arm64环境执行x86架构的二进制文件,触发指令集不兼容报错
  • 之前卸载arm64版本Miniforge不彻底,~/.zshrc、~/.bash_profile等shell配置文件中还残留了arm64版conda的路径,优先级高于新安装的x86版conda,导致调用Python相关命令时触发混编错误
  • 部分依赖包在x86 conda环境中安装时调用了本地arm64的编译工具链,生成了混合架构的二进制文件,执行时触发指令错误
可行解决方案

方案1:原生arm64环境方案(推荐,性能更高)

目前绝大多数常用Python包已经适配M1系列芯片,你遇到的onnxruntime无法安装的问题可以通过conda-forge渠道解决,无需切换x86架构:

  1. 彻底卸载当前x86版本的Miniforge,删除shell配置文件中所有和conda相关的路径配置
  2. 重新安装arm64版本的Miniforge,执行conda config --add channels conda-forge确认添加社区源
  3. 创建新的conda环境后,优先使用conda install命令安装依赖,不要直接用pip安装:
    • onnxruntime可直接通过conda install onnxruntime安装,conda-forge已经提供了适配arm64架构的稳定版本
    • 仅当conda源没有对应包时,再用pip补充安装
  4. 所有操作都在原生arm64终端下完成即可,无需开启Rosetta

方案2:纯x86 Rosetta环境方案(兼容无arm64适配的特殊包)

如果你的依赖包含完全不支持arm64的特殊包,可以用纯x86环境避免架构混合问题:

  1. 在访达中找到你常用的终端应用(系统终端Terminal或iTerm2),右键选择「显示简介」,勾选「使用Rosetta打开」,完全关闭所有终端窗口后重新打开
  2. 执行arch命令,确认返回结果为x86_64,代表当前终端为x86模拟环境
  3. 彻底清理所有残留的conda相关文件和配置:
    rm -rf ~/miniforge3
    sed -i '' '/conda/d' ~/.zshrc ~/.bash_profile ~/.profile
    
  4. 重新安装x86版本的Miniforge,安装完成后重启终端,执行conda info确认platform字段显示为osx-64
  5. 创建新的conda环境后,再安装所有依赖包,所有相关操作都必须在开启Rosetta的终端中执行,不要混合使用原生终端
验证方法

环境配置完成后,执行以下命令验证配置有效性:

  • 执行python -c "import onnxruntime; print(onnxruntime.__version__)"确认包可以正常导入
  • 执行pytest --version确认pytest可以正常运行,无硬件指令报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:54:03