M1 Mac编译安装OpenCV提示numpy/ndarrayobject.h不存在如何解决
M1芯片Mac编译OpenCV
numpy/ndarrayobject.h缺失报错解决方案 这个报错本质是CMake编译过程中没有定位到对应Python环境下的numpy头文件路径,M1芯片Mac的Python包安装路径和Intel架构Mac存在差异,很容易出现路径匹配失败的问题,可按以下步骤解决:
- 第一步:确保当前使用的Python环境已安装numpy
执行命令:pip3 install numpy - 第二步:手动获取numpy头文件路径
执行命令:python3 -c "import numpy; print(numpy.get_include())"
执行后会输出类似/opt/homebrew/lib/python3.11/site-packages/numpy/core/include的路径,记下来备用。 - 第三步:清理之前的CMake缓存,重新配置编译参数
先删除build目录下的缓存文件:rm -rf CMakeCache.txt CMakeFiles
重新执行cmake命令时,额外添加以下两个参数,原有你使用的其他cmake参数保持不变即可:cmake .. \ -DPYTHON3_INCLUDE_DIR=$(python3 -c "import sysconfig; print(sysconfig.get_path('include'))") \ -DPYTHON3_NUMPY_INCLUDE_DIRS=$(python3 -c "import numpy; print(numpy.get_include())") - 第四步:重新执行编译命令
cmake --build . -j8
附加排查项:如果执行完上述步骤仍报错,检查当前Python架构是否为arm64,执行命令
file $(which python3),如果输出结果包含x86_64说明你使用的是转译的x86版本Python,需要更换为arm64架构的Python版本后重新操作。
内容的提问来源于stack exchange,提问作者Silicon
相关产品推荐
相关产品推荐

