Mac M1 Pro安装Argoverse时numpy编译失败,疑多版本numpy所致?
M1 Pro Mac安装Argoverse的numpy编译错误解决方案
错误本质
这个编译问题不是多版本numpy直接导致,核心是M1 Pro的ARM架构和x86架构的编译器参数不兼容:x86的clang支持-faltivec,但ARM版clang得用-maltivec,还得手动加altivec.h头文件。Argoverse的默认编译脚本没适配ARM环境,才会报错。
不过多版本Python确实可能搅乱依赖环境,得先把环境理清楚。
具体解决步骤
1. 搭建独立Python虚拟环境
先隔离出干净的环境,避免多版本Python干扰:
- 用Python3.10创建虚拟环境:
python3.10 -m venv argo_env source argo_env/bin/activate - 激活后重新安装指定版本的numpy:
pip install numpy==1.23.1
2. 修改Argoverse的编译参数
找到Argoverse源码里的编译配置文件(比如setup.py或者Makefile):
- 把所有出现
-faltivec的地方替换成-maltivec - 在用到Altivec指令的C/C++代码开头,加上:
#include <altivec.h>
3. 用环境变量强制指定编译参数
如果改配置文件麻烦,直接设置环境变量再安装:
export CFLAGS="-maltivec -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" export CXXFLAGS="-maltivec -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
然后重新安装Argoverse(如果是源码安装就跑下面的命令):
pip install -e .
4. 验证安装结果
安装完后跑几行代码确认没问题:
import numpy import argoverse print(numpy.__version__) print(argoverse.__version__)
内容的提问来源于stack exchange,提问作者Hong
相关产品推荐
相关产品推荐

