Ubuntu16.04下pip3安装TensorFlow GPU版验证时出现libcublas.so.9.0缺失错误
解决TensorFlow GPU导入时找不到libcublas.so.9.0的问题
这个问题我碰到过好多次了!你遇到的ImportError: libcublas.so.9.0本质是TensorFlow GPU版本依赖的CUDA 9.0库没被系统识别到——要么是你没装CUDA 9.0,要么是装了但环境变量没配置对。下面给你一步步解决的办法:
方案1:安装对应版本的CUDA 9.0(如果系统未安装)
TensorFlow的GPU版本对CUDA版本有严格的对应要求,你当前安装的TF版本明确依赖CUDA 9.0,所以必须安装这个版本(不能随便装最新版):
- 先检查系统已有的CUDA版本:执行
nvcc --version,如果输出的版本不是9.0,就需要安装CUDA 9.0。 - 下载CUDA 9.0安装包(选择对应Linux系统的版本),安装时选择自定义安装,确保勾选所有包含
cublas的组件,默认安装路径是/usr/local/cuda-9.0。 - 同时别忘了安装对应版本的cuDNN(CUDA 9.0对应cuDNN 7.0.x):下载cuDNN压缩包后,解压将里面的
include、lib64文件夹内容复制到/usr/local/cuda-9.0的对应目录下。
方案2:配置CUDA环境变量(如果已安装CUDA 9.0但未配置)
如果已经装了CUDA 9.0,但系统找不到库文件,就是环境变量没设置:
- 打开你的bash配置文件(比如
~/.bashrc或~/.profile):执行nano ~/.bashrc - 在文件末尾添加以下两行:
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH export PATH=/usr/local/cuda-9.0/bin:$PATH - 保存退出后,执行
source ~/.bashrc让环境变量立即生效。 - 验证配置:执行
echo $LD_LIBRARY_PATH,确认输出里包含/usr/local/cuda-9.0/lib64路径。
方案3:更换适配当前CUDA版本的TensorFlow(不想装CUDA 9.0的话)
如果你的系统已经装了其他版本的CUDA(比如10.0),可以卸载当前的TensorFlow,安装对应版本的:
- 卸载现有TF:
pip3 uninstall tensorflow-gpu - 根据你的CUDA版本安装适配的TF:比如CUDA 10.0对应TensorFlow GPU 1.13.1,执行
pip3 install tensorflow-gpu==1.13.1(注意要确认TF和CUDA版本的对应关系,比如TF 2.0+对应CUDA 10.0及以上)。
最后验证
配置完成后,重启终端,进入Python3环境执行import tensorflow as tf,如果没有报错,再执行tf.test.is_gpu_available()确认GPU是否能被正确识别。
内容的提问来源于stack exchange,提问作者Vatsalya Awasthi




