记录一下这个bug的fix过程
一开始以为是版本问题,尝试了几个不同版本都不可以,遂排除版本问题的可能
定位
首先 pip list 看到确实安装了这个库
接着 pip show 查看 numpy 库的安装路径
numpy/arrayobject.h 是 NumPy 的 C-API 头文件,其路径通常位于 NumPy 安装目录的 core/include/numpy 子目录中;
对应到 conda 环境中,这个文件存在于 python3.X/site-packages/numpy/core/include/numpy/arrayobject.h 目录下,验证确实存在这个文件
那么问题就在于 PyTorch 编译时,没有把 numpy 的 core/include 包含在其 include 中,因其,文件中通过 #include <numpy/arrayobject.h> 这样的形式引用的。
解决方法
1. 编译时找不到头文件
设置环境变量:
python
export C_INCLUDE_PATH=$(python -c "import numpy; print(numpy.get_include())")
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH
export 时需要 activate 对应的 conda 环境
解决