Ubuntu16.04.03安装TensorFlow遇libcublas.so.9.0缺失错误求助
解决ImportError: libcublas.so.9.0 找不到的问题
这个问题我之前帮不少开发者解决过,本质就是系统找不到CUDA 9.0的cuBLAS库文件,大概率是CUDA版本没装对或者环境变量没配置好,给你分几种情况来处理:
一、你还没安装CUDA 9.0
首先要明确:TensorFlow的版本和CUDA版本是严格对应的,比如TensorFlow 1.10到1.13系列通常要求CUDA 9.0,别随便装更高版本。解决步骤:
- 下载对应你系统的CUDA Toolkit 9.0(比如Ubuntu 16.04/18.04、Windows等)
- 安装时选「自定义安装」,务必确认
cuBLAS相关组件是勾选状态(默认会勾,但最好检查下) - 安装完成后一定要配置环境变量,不然系统还是找不到库
二、已经装了CUDA 9.0,但环境变量没配置
这是最常见的情况,分临时和永久两种配置方式:
临时生效(仅当前终端可用)
直接在终端执行这两行命令:
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH export PATH=/usr/local/cuda-9.0/bin:$PATH
执行完再尝试导入TensorFlow,应该就能正常运行了。
永久生效(重启终端也有效)
- 打开你的shell配置文件:如果用bash就编辑
~/.bashrc,用zsh就编辑~/.zshrc,系统级配置可以改/etc/profile - 在文件末尾添加以下两行:
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH export PATH=/usr/local/cuda-9.0/bin:$PATH - 执行
source ~/.bashrc(或对应的配置文件)让修改立即生效
三、系统有更高版本CUDA,但TensorFlow需要9.0
如果你的系统已经装了CUDA 10.x或更高版本,不想卸载的话,可以共存多个CUDA版本:
- 直接安装CUDA 9.0到默认目录(它会和高版本的CUDA分开,比如
/usr/local/cuda-9.0和/usr/local/cuda-10.2) - 通过修改环境变量切换到9.0版本,或者用
update-alternatives工具来管理CUDA的默认版本
额外检查步骤
执行这条命令可以验证系统是否能找到目标库:
ldconfig -p | grep libcublas.so.9.0
如果输出里有这个库的路径,说明环境变量没问题;如果没输出,要么没装CUDA 9.0,要么路径没加对。
要是你用的是conda环境,也可以直接用conda安装对应版本的CUDA工具包,它会自动帮你配置环境:
conda install cudatoolkit=9.0
内容的提问来源于stack exchange,提问作者Srivishnu Piratla
相关产品推荐
相关产品推荐

