用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就行