Ubuntu使用pycharm:ImportError: libcublas.so.9.0: cannot open shared object file

ImportError: libcublas.so.9.0: cannot open shared object file解决办法

出现这个问题一般有好几个原因,下面将会一一讲解

1. 首先我们需要检查自己安装的tensorflow的版本和cuda的版本是否对应,例如这里的libcublas.so.9.0实际是指cuda9.0里面的一个依赖库,这里我抄了一份tensorflow和cuda的对应表
(https://blog.csdn.net/lifuxian1994/article/details/81103530)
tensorflow-gpu v1.9.0 | cuda9.0 | cuDNN7.1.4可行 | 备注:7.0.4/ 7.0.5/ 7.1.2不明确

tensorflow-gpu v1.8.0 | cuda9.0 | cuDNN 不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4

tensorflow-gpu v1.7.0 | cuda9.0 | cuDNN 不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4

tensorflow-gpu v1.6.0 | cuda9.0 | cuDNN 不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4

tensorflow-gpu v1.5.0 | cuda9.0 | cuDNN 不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4

tensorflow-gpu v1.4.0 | cuda8.0 | cuDNN 6.0 | 备注:6.0正常使用, 7.0.5不能用,5.1未知

tensorflow-gpu v1.3.0 | cuda8.0 | cuDNN 6.0 | 备注:6.0正常使用, 7.0.5不能用,5.1未知

tensorflow-gpu v1.2.0 | cuda8.0 | cuDNN 5.1 | 备注:5.1正常使用, 6.0/ 7.0.5 未知

不过在我写这篇论文的时候,cuda的版本已经达到了10,tensorflow的版本已经达到了1.13(这个版本支持cuda10),因为找对应版本的时候已经是我很久之前给win10装的时候找的,所以现在的对应的版本需要各位自己去找找了。
不过还要注意的是英伟达显卡版本和cuda的对应关系,cudnn还好,因为下载cudnn的时候会告诉你对应的版本。

2. 如果你发现自己的显卡版本,cuda版本,cudnn版本,tensorflow版本都是正确的,然后运行的时候你发现还是不行,这个时候你可以看一下

/usr/local/cuda-9.0/lib64  (这里的cuda-9.0以你自己的为准,因为我这里装的是cuda9.0版本的)

文件夹下面有没有libcublas.so.9.0文件,如果有,那估计是你当初转移cudnn的时候命令没写完

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

这里我抄了一份命令,基本就是这样的命令了,估计最后两句修改权限的命令你忘记写了

3. 如果你安装第二点也输入了完整的命令,你发现,emmmmm……,还是不能运行,那么估计是你安装cuda的时候命令没写完

sudo gedit ~/.bashrc

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

source ~/.bashrc

这里我也找了一段代码,这里需要将cuda的路径添加到环境变量里面,那么估计是你这里没有写对

4. 如果上面的你都没有错误,那说明咱俩的习惯还挺像的,如果你是在命令行中运行的代码,那么你看看你是不是这样写的

sudo python XXX.py

那么恭喜你呀,这个使用了root权限,可爱的Linux会告诉你找不到 libcublas.so.9.0,为啥呢,其实很简单,因为你上面的环境变量只是给你的当前用户添加的,并不是给root用户添加的,如果你想给root用户添加,你可以百度或者谷歌看看咋操作,我已经忘记了。你运行代码的时候只需要去掉sudo就可以了。
当然了,对于pycharm也是类似的,一般而言咱们在Linux里面启动pycharm,使用的都是命令的方式

sh ./pycharm

如果你在这个命令前面添加了sudo,那么就没法运行了,因为原因和上面一样,pycharm找不到环境变量里面的cuda的路径了。
其实这个原因对于Linux小白而言很令人感到奇怪,因为Windows里面的用户模式几乎没人去接触,毕竟你就用一个账号登录你的Windows电脑,不过Linux天生就是可以多人使用的操作系统,所以这样设计是很正常的。

你可能感兴趣的:(深度学习,python,Ubuntu,Ubuntu16,pycharm)