Python 日食+;pydev可以';找不到tensorflow的cuda库

Python 日食+;pydev可以';找不到tensorflow的cuda库,python,tensorflow,pydev,Python,Tensorflow,Pydev,我正试图调试一些建立在tensorflow之上的计算机视觉代码(比如dcgan)。我在virtualenv(比如py1)中安装了tf_0.10,并使用eclipse+pydev作为IDE。问题是调试器找不到cuda库,因此出现如下错误: ImportError:libcudart.so.8.0:无法打开共享对象文件:没有此类文件或目录 另一方面,代码在ubuntu命令行上正常工作,virtualenv中的py1在查找cuda库时没有问题 在eclipse+pydev设置中,我将py intepr

我正试图调试一些建立在tensorflow之上的计算机视觉代码(比如dcgan)。我在virtualenv(比如py1)中安装了tf_0.10,并使用eclipse+pydev作为IDE。问题是调试器找不到cuda库,因此出现如下错误:

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

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

在eclipse+pydev设置中,我将py intepreter设置为py1, 通过将eclipse菜单->窗口->首选项->intepreter->python intepreter设置为

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

此外,上述intepreter的系统
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和intepreter作为我的计算机视觉代码dcgan

通过将dcgan->properties->pyDev解释器/grammer设置为py1,并在pyDev PYTHONPATH上添加>外部库
/usr/local/cuda/lib64


我还遗漏了什么吗?

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

请注意,PYTHONPATH是PyDev中的一个特殊变量,由您在解释器和项目的源文件夹中添加的文件组成,因此,要检查PYTHONPATH,我的建议是创建一个包含以下内容的程序:

import sys
print('\n'.join(sorted(sys.path)))
并从命令行和Eclipse内部运行它,以比较不同之处(并相应地修复PyDev上的配置)


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

我遇到了一个类似的问题,tensorflow在命令行上成功访问了我的GPU,但eclipse没有。我有两件事要解决这个问题

  • 重新启动Eclipse—如果自上次打开Eclipse以来对路径进行了更改,那么它可能只是拥有一个陈旧的环境视图

  • 在运行时配置中,设置必要的环境变量,特别是CUDA_PATH,以强制定位正确的当前路径,尤其是在可能有多个CUDA版本的情况下

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

    import os
    print(os.environ)
    
    但是,请注意,在eclipse过时的情况1中,即使eclipse不知道当前的状态,您仍然可以打印出正确的环境变量。

    duplicate: