红联Linux门户
Linux帮助

解决Ubuntu+Eclipse+pydev+tensorflow CUDA链接库不能加载

发布时间:2017-06-15 11:16:33来源:linux网站作者:rtygbwwwerr
现象:使用eclipse run Python程序时,Console中错误提示:
Couldn't open CUDA library libcudnn.so
Couldn't open CUDA library libcufft.so
 
经过排查,cuda,cudnn均已正确安装,环境变量也正常配置,同时,在系统终端中运行该py文件无报错,于是怀疑是eclipse设置有问题,随即通过如下方式解决:
1.打开Windows->Preferences->PyDev->Interpreters->python Interpreter
2.选择第二栏选项卡中的Environment,选择new
3.通过new,新建2个Variable,
CUDA_HOME=/usr/local/cuda
LD_LIBRARY_PATH=${CUDA_HOME}:usr/local/cuda/lib64:usr/local/cuda/extras/CUPTI/lib64
*:variable的值根据个人电脑上的配置设定
这个选项其实就是设置eclipse的自定义环境变量
重新运行程序,加载成功。
 
参考:jupyter notebook下提示Couldn't open CUDA library libcudnn.so的解决办法
用jupyter notebook远程连服务器的时候,发现import tensorflow之后会提示:
Couldn’t open CUDA library libcudnn.so
于是探究了一下原因和解决办法。
出这个错主要是因为LD_LIBRARY_PATH这个环境变量没有配置好,但是我直接ssh连接到服务器上之后,运行import tensorflow之后并没有错误,全都提示成功。
查了一下资料别人说是因为jupyter notebook并没有完全继承环境变量,所以才会导致这个错误,我觉得这是个jupyter的bug
然后我就尝试去修复这个问题,一开始思路是直接在Python程序里面加一下环境变量,于是我加入:
import os
os.environ['LD_LIBRARY_PATH'] = '/usr/local/cuda/lib64'
结果发现可以找到这个环境变量但是运行的时候还是会报错,WTF?试了好几种类似的方法,都不行,一直不明白原因在哪里。
然后只好换一个思路,修改jupyter一开始运行的时候的环境变量,在用户目录~下面创建一个.screenrc的文件,然后加上如下内容:
setenv LD_LIBRARY_PATH /usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
source /etc/screenrc
然后运行screen jupyter notebook就行。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/31500.html