jetson安装pycuda报错的解决方案

在使用pip安装pycuda的时候可能会遇见好几种报错

1.找不到cuda.h头文件
首先是最常见的

  src/cpp/cuda.hpp:14:10: fatal error: cuda.h: No such file or directory
   #include <cuda.h>
            ^~~~~~~~
  compilation terminated.
  error: command 'aarch64-linux-gnu-gcc' failed with exit status 1

遇见这种报错是因为找不到cuda.h文件,然而这个文件在jetson是可以找到的,默认放在了cuda的文件夹里
/usr/local/cuda-10.2/targets/aarch64-linux/include
所以只需要手动将路径添加到LIBRARY_PATH即可,指令如下

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.2/targets/aarch64-linux/libexport 
export CPATH=$CPATH:/usr/local/cuda-10.2/targets/aarch64-linux/include

2.numpy版本不匹配

第二种可能遇见的报错是
numpy/core/src/multiarray/numpyos.c:18:10: fatal error: xlocale.h: 没有那个文件或目录
在这里插入图片描述

遇到这个报错是因为numpy的版本不匹配,使用pip安装pycuda的依赖库numpy版本默认为较新的版本。
旧的版本(我使用的16.6)中numpy/core/的目录中根本没有src,这样自然找不到文件,而最新的numpy1.20.2是有这个目录的。
所以尝试升级numpy后再安装pycuda,结果遇到了新的报错说和使用的tensorflow1.15.5冲突,因为后者需要numpy< 1.19。
在这里插入图片描述

所以思考之后选择安装先前版本的pycuda,这样不会需要较新的numpy也不和tensorflow冲突。

在pycuda的发布历史中可以查询到先前版本,然后使用

sudo pip install pycuda==2019.1.2 --user
就ok了。


版权声明:本文为MalusJiang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。