【问题标题】:eclipse+pydev can't find cuda library for tensorfloweclipse+pydev 找不到 tensorflow 的 cuda 库
【发布时间】:2020-10-22 19:45:39
【问题描述】:

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

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

另一方面,代码在 ubuntu 命令行上运行正常,并且 virtualenv 中的 py1 找到 cuda 库没有问题。

在我的 eclipse+pydev 设置中,我将 py 解释器设置为 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

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

通过将 dcgan -> 属性 -> pyDev-interpreter/grammer 设置为 py1 并在 pyDev-PYTHONPATH 上添加 >external Librarie /usr/local/cuda/lib64

我还有什么想念的吗?

【问题讨论】:

标签: python tensorflow pydev


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,我的 GPU 在命令行上被 tensorflow 成功访问,但不是 eclipse。我有 2 件事要尝试解决此问题。

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

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

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

    import os
    print(os.environ)
    

    但是,请注意,在 eclipse 过时的情况 1 中,即使 eclipse 不知道当前的事务状态,您仍然可能会打印出正确的环境变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-30
      • 2016-11-20
      • 2016-12-18
      • 1970-01-01
      • 2011-04-06
      • 2011-08-01
      • 2012-03-06
      • 2021-08-01
      相关资源
      最近更新 更多