Tensorflow GPU Python 3.5。 Eclipse有错误:ImportError:libcudart.so.8.0:无法打开共享对象文件:

时间:2017-03-20 21:31:47

标签: eclipse tensorflow gpu

我在Python 3.5 Anaconda envrionment上安装了Tensorflow GPU v1.0。一切似乎都很好。我可以运行Juputer笔记本和终端,以下几行。它告诉GPU运行良好:

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))



====Output
Python 3.5.3 |Continuum Analytics, Inc.| (default, Mar  6 2017, 11:58:13) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened    CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))


…

I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 1 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 1:   Y Y 
…

但是,在Eclipse中,我通过选择Ananconda / env // bin / python来设置环境。超过2个GPU验证行会出错:

ImportError:libcudart.so.8.0:无法打开共享对象文件:没有这样的文件或目录

我在另一个Anaconda环境,Jupyter,终端,Eclipse中尝试过Tensorflow CPU,一切都很好!

Eclipse中对于tensorflow GPU缺少什么?使Eclipse适用于Tensoflow GPU v1.0的任何额外步骤。

========错误消息========

File "/home/<username>/anaconda3/envs/dl-conda-py35/lib/python3.5/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/home/<username>/anaconda3/envs/dl-conda-py35/lib/python3.5/imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: libcudart.so.8.0: cannot open shared object file: No such file or directory

但文件:libcudart.so.8.0存在。

$ls /usr/local/cuda/lib64/libcudart.so.8.0
/usr/local/cuda/lib64/libcudart.so.8.0

我设置Eclipse Python解释器的方式与Tensorflow CPU相同(CPU没有问题)。但GPU张量流有问题。

3 个答案:

答案 0 :(得分:1)

有趣的是,我遵循了ruoho ruotsi的指示。当我用sudo ./yourEclipse/eclipse开始eclipse时,它仍然无法找到cuda,但没有sudo,它可以。

更新: 如果我使用sudo启动eclipse,我必须通过设置Run configurations - &gt;在eclipse中添加LD_LIBRARY_PATH =:/ usr / local / cuda / lib64。环境变量。

答案 1 :(得分:0)

您遇到与cuda7.5 question类似的问题。快速浏览一下。

我建议在运行IDE时将CUDA lib文件夹添加到PYTHONPATH。

PYTHONPATH=$PYTHONPATH:/usr/local/cuda/lib64 ./myEclipseFolder/eclipse

简而言之,因为您可以从命令行而不是从Eclipse IDE工作,所以您必须正确配置Eclipse python解释器并将其指向正确的CUDA lib&amp; bin路径。这不是TensorFlow CPU所必需的,它不依赖libcudart.so祝你好运!

更新 - 添加了Liclipse / PyDev屏幕截图:enter image description here

更新2 :运行上面的代码是我得到的消息,TF GPU正在运行:enter image description here

答案 2 :(得分:0)

在这种情况下,我认为第一件事就是从命令行运行它...之后,我的建议是从同一个shell启动Eclipse,然后检查启动它时所有环境变量是否与来自贝壳。

作为一个注释,PYTHONPATH是PyDev中的一个特殊变量,由您在解释器中添加的文件和项目中的源文件夹组成,因此,为了检查PYTHONPATH我的建议是创建一个程序:

import sys
print('\n'.join(sorted(sys.path)))

从命令行和Eclipse内部运行它来比较可能不同的东西(并相应地修复PyDev上的配置)。