Mac M1 Ventura下Drake C++ Bazel构建报错的解决问询
修复M1 Mac上Drake构建的numpy架构不兼容问题
问题根源
M1 Mac默认Python环境为arm64架构,但Drake构建依赖x86_64版本的numpy,直接用系统pip安装的numpy是arm64版本,导致架构不匹配报错。
解决方案
方法一:通过Rosetta 2终端安装x86_64版numpy
- 创建Rosetta终端副本
- 打开「访达」→「应用程序」→「实用工具」,找到「终端」
- 右键终端选择「复制」,重命名为「终端(Rosetta)」
- 右键该副本→「显示简介」,勾选「使用Rosetta打开」
- 打开Rosetta终端,执行安装命令:
若存在多Python版本,需确认使用的是Drake依赖的解释器(通过pip install --upgrade --force-reinstall numpywhich python3查看路径)。 - 在同一Rosetta终端中重新运行Drake构建命令:
bazel run -j 10 --config=mosek --config=gurobi //:install -- ~/drake-build --no_strip
方法二:直接指定架构安装numpy
无需切换终端,在普通arm64终端中执行以下命令强制安装x86_64版numpy:
ARCHFLAGS="-arch x86_64" pip install --upgrade --force-reinstall numpy
注:此方法可能引发其他依赖的架构冲突,优先推荐方法一。
额外清理步骤
若pip缓存残留旧版本numpy,可先清理缓存再安装:
pip cache purge
内容的提问来源于stack exchange,提问作者user3180
相关产品推荐
相关产品推荐

