使用Anaconda安装cuDNN 6.0.0后缺失libcudnn.so.6的问题咨询
这是完全正常的现象,别担心!
你遇到的情况是Anaconda环境隔离机制导致的,完全符合预期——conda安装的CUDA和cuDNN是仅存在于你的目标conda环境内部的,不会覆盖或修改系统级/usr/local/cuda目录下的文件。
为什么会这样?
- Conda的核心优势就是环境隔离,它会把所有包(包括cuda、cudnn)安装在你指定的conda环境目录中(比如
~/anaconda3/envs/your_env/lib),而不是系统的全局路径/usr/local/cuda。 - 你看到的
/usr/local/cuda/lib64里的libcudnn.so.5是系统之前安装的全局版本,和你conda环境里的cudnn 6.0.0完全独立,两者互不干扰。
怎么让TensorFlow 1.4找到conda安装的cuDNN 6?
其实很简单,只要确保你在激活conda环境的状态下运行TensorFlow就行:
- 激活你的conda环境:
# 新版conda conda activate your_env_name # 旧版conda(比如conda 4.6及之前) source activate your_env_name - 验证环境内的cuDNN是否存在:
可以直接查看环境的lib目录:
这里应该能看到ls $CONDA_PREFIX/lib | grep libcudnnlibcudnn.so.6和对应的软链接。 - 运行TensorFlow:
激活环境后,Python会优先加载环境内的库文件,所以直接运行你的TensorFlow代码,应该就能正常找到libcudnn.so.6了。如果还是报错,可以手动设置环境变量:export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH - 确认GPU可用:
运行以下代码验证:import tensorflow as tf print("TensorFlow版本:", tf.__version__) print("GPU是否可用:", tf.test.is_gpu_available())
额外提醒
- 不要试图去修改
/usr/local/cuda的文件来适配conda环境,这会破坏系统级CUDA的完整性,还可能影响其他依赖旧版本cudnn的程序。 - Conda环境的隔离设计就是为了让不同项目使用不同版本的依赖,所以保持这种隔离是更稳妥的做法。
内容的提问来源于stack exchange,提问作者Jay Wang
相关产品推荐
相关产品推荐

