解决pycaffe编译报错:fatal error: numpy/arrayobject.h
本文介绍编译pycaffe时遇到fatal error: numpy/arrayobject.h错误的解决方法。通过安装python-numpy模块或修正Makefile.config中PYTHON_INCLUDE路径,将/usr/lib改为/usr/local/lib即可解决该头文件缺失问题。
pycaffe编译报错numpy/arrayobject.h解决方法
在编译pycaffe的过程中,可能会遇到如下报错信息:fatal error: numpy/arrayobject.h没有那个文件或目录。

尽管系统中已经安装了numpy,例如在anaconda2环境中存在该库,且在Python中执行import numpy也能成功导入,但在编译阶段依然会报出上述错误。针对这一情况,可以采取以下解决措施:
sudo apt-get install python-numpy
执行上述安装命令后,继续运行编译指令:
sudo make pycaffe -j16
此时,pycaffe应当能够成功完成编译。

若上述步骤未能解决问题,可以尝试通过Python获取numpy的实际安装路径。在Python环境中执行以下代码:
import numpy as npnp.get_include()
该命令将输出numpy头文件的包含路径,例如:
/usr/local/lib/python2.7/dist-packages/numpy/core/include
接下来,检查Makefile.config文件中的PYTHON_INCLUDE配置项,发现其路径可能与实际不符:
PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/lib/python2.7/dist-packages/numpy/core/include
需要将路径中的/usr/lib修改为/usr/local/lib,修正后的配置如下:
PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/local/lib/python2.7/dist-packages/numpy/core/include
修改完成后,再次执行make pycaffe即可成功编译。
值得注意的是,如果在caffe/build目录下执行编译,可能会提示No rule to make target 'pycaffe'。此时应切换到caffe根目录下进行编译操作。

具体的解决方法如下:
首先,在命令行中进入Python环境,执行以下代码:
import numpy as np np.get_include()
该操作将返回numpy的安装路径,例如:
/usr/local/lib/python2.7/dist-packages/numpy/core/include
随后,在Makefile.config文件中找到PYTHON_INCLUDE配置项,对比发现路径存在差异:
PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/lib/python2.7/dist-packages/numpy/core/include
需要将路径修正,添加local关键字,修改为:
PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/local/lib/python2.7/dist-packages/numpy/core/include
完成修改后,重新执行make pycaffe即可解决问题。
另一种直接的安装模块方式是:
suod apt-get install python-numpy
至此,关于编译pycaffe时报错fatal error: numpy/arrayobject.h没有那个文件或目录的问题已介绍完毕。如需了解更多相关错误处理内容,可参考本站其他文章或继续浏览后续内容,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









