在屏幕上得到错误:ImportError:libcuda.so.1:无法打开共享对象文件

时间:2019-01-18 07:39:48

标签: python tensorflow screen

当我直接使用tensorflow运行代码时,一切正常。

但是,当我在屏幕窗口中运行它时,出现以下错误。

  

ImportError:libcuda.so.1:无法打开共享对象文件:否这样   文件或目录

我尝试了以下命令:

source /etc/profile

但这不起作用。

因为我使用ssh连接到服务器,所以需要屏幕。

我该如何解决?

2 个答案:

答案 0 :(得分:1)

尝试将libcuda.so.1路径放入LD_LIBRARY_PATH环境变量。

示例:

export LD_LIBRARY_PATH=/path/of/libcuda.so.1:$LD_LIBRARY_PATH

答案 1 :(得分:0)

背景

libcuda.so.1 是用于与 CUDA 驱动程序交互的库(与 CUDA 的“运行时 API”相反,您需要 libcudart.so.*

现在,问题是,很可能在没有正确安装驱动程序的情况下正确安装了 CUDA Toolkit。这个错误可能是在这种情况下构建(非静态链接的)CUDA 应用程序的结果。

或者,也可能是库搜索路径配置错误 - 因为通常,libcuda.so.* 应该安装在该路径上的某个目录中!

那么,搜索路径上有什么?正如 here 所解释的,它是:

  1. 来自 $LD_LIBRARY_PATH 的目录
  2. 来自 /etc/ld.so.conf 的目录
  3. /lib
  4. /usr/lib

一个典型的场景是 /etc/ld.so.conf 添加,例如,/usr/lib/x86_64-linux-gnu;并让libcuda.so.*在那里。

底线

您应该这样做:

  1. 确保已正确安装(n 个最新)CUDA 驱动程序。如果没有,请下载并安装它,问题已解决。
  2. 找到放置 libcuda.so.1 的位置(例如使用 locate)。如果它被放置在不在库搜索路径中的奇怪位置 - 按照步骤 1 操作
  3. 如果您希望驱动程序库安装在某个奇怪的地方,然后将该路径添加到您用户的 $LD_LIBRARY_PATH 中。