1.环境:
确保已有完整的cuda环境,本环境:
cuda:9.0 (nvcc --version查看)
python 3.6
centos7 (lsb_release -a 查看)
2. 安装:
sudo pip3 install pycuda
报错:cuda.h: No such file or directory
以为是cuda这边的问题,于是一阵操作加cuda.h(踩坑省略)
最后–>没有python3-devel包,只有内置的python2的python-devel包,(比如我们在编译一个用C语言编写的python扩展模块时,因为里面会有#include<Python.h>等这样的语句,因此我们就需要先安装python-devel开发包。)以前用的库没有需要这个的,哭了。执行:
sudo yum install python3-devel
以为这就可以安装了吗?
此时我们再次执行指令: sudo pip3 install pycuda,发现仍然报错:pyconfig.h: No such file or directory
??? 不是已经安装依赖包了吗。于是又想办法加 pyconfig.h操作,加路径,建文件,没卵用(踩坑省略)。问题不在这,问题在于pycuda安装时会使用nvcc(CUDA Toolkit),而nvcc是不具有root权限的,但是你不用sudo装包又有权限问题。此时看不加sudo情况下安装包报错:
error: could not create '/usr/local/lib64/python3.6/site-packages/pycuda': Permission denied
可以看到报错,权限问题无法新建文件,于是将此路径权限开满到777,python包安装路径一般就是这个/usr/local/lib64/python3.6/site-packages/,执行:
sudo chmod 777 -R /usr/local/lib64/python3.6/site-packages
此时不加sudo再次安装pycuda:
pip3 install pycuda
........
Successfully installed pycuda-2019.1.2
以上是对cuda以及python扩展包的不了解造成的安装失败,才被系统报错指引到错误的方向。期望自己能进化透过问题看本质的程序媛!