eclipse + pydev无法找到用于张量流的cuda库

时间:2017-03-23 21:14:34

标签: python tensorflow pydev

我正在尝试调试构建在tensorflow之上的一些计算机视觉代码(比如dcgan)。我在virtualenv中安装了tf_0.10(例如,py1),我使用eclipse + pydev作为IDE。问题是调试器无法找到cuda库,所以我得到如下错误,

  

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

另一方面,代码在ubuntu命令行上正常工作,而virtualenv中的py1在查找cuda库时没有问题。

在我的eclipse + pydev设置中,我将py intepreter设置为py1, 通过将 eclipse menu-> window-> preference-> intepreters-> python intepreter 设置为

/home/zyuan/tensorflowr010/bin/python2.7(其中/ home / zyuan / tensorflowr010是virtualenv的根源)

上述解释器的系统PYTHONPATH也是

/home/zyuan/tensorflowr010/lib/python2.7
/home/zyuan/tensorflowr010/lib/python2.7/lib-dynload
/home/zyuan/tensorflowr010/local/lib/python2.7/site-packages
/home/zyuan/tensorflowr010/lib/python2.7/site-packages
/home/zyuan/tensorflowr010/lib

然后我选择了py1和我的计算机视觉代码dcgan的解释器,

通过设置dcgan - >特性 - > pyDev-interpreter / grammer as py1并在pyDev-PYTHONPATH上添加>外部Librarie /usr/local/cuda/lib64

我还有其他什么吗?

2 个答案:

答案 0 :(得分:0)

可以从命令行运行吗?如果没有,这是第一步,如果你已经可以,我的建议是从同一个shell启动Eclipse,然后检查启动它时所有环境变量是否与shell中的变量匹配。

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

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

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

此外,在命令行中运行之后,从同一个shell启动Eclipse可能会很好(因此它将继承您在该shell中定义的所有env变量,这可以节省您必须检查许多的时间其他env vars也可能很重要。)

答案 1 :(得分:0)

我遇到了一个类似的问题,即我的GPU已通过tensorflow在命令行上成功访问了我的GPU,但没有蚀过。我有两件事可以尝试解决这一问题。

  1. 重新启动Eclipse-如果自上次打开Eclipse以来已对路径进行了更改,则它可能只是对环境有陈旧的看法

  2. 在“运行时配置”中,设置必要的环境变量,尤其是CUDA_PATH,以强制设置正确的当前路径,尤其是当您可能有多个CUDA版本时。

您的当前状态可以通过以下方式查看:

import os
print(os.environ)

但是,请注意,在情况1的月食过时的情况下,即使eclipse并不了解当前的事务状态,您仍然可以打印出正确的环境变量。