ImportError:libcuda.so.1:无法打开共享对象文件

dwq*_*y11 5 python cuda screen tensorflow cuda-driver

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

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

ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我已经尝试过命令:

source /etc/profile
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

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

我该如何修复它?

Tkr*_*krA 14

步骤如下:
找到libcuda.so.1

echo $LD_LIBRARY_PATH #path
sudo find /usr/ -name 'libcuda.so.*' #version
Run Code Online (Sandbox Code Playgroud)

然后在终端中使用以下命令添加到$LD_LIBRARY_PATH,在我的例子中:/usr/local/cuda-10.0/compat

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/compat
Run Code Online (Sandbox Code Playgroud)


ein*_*ica 6

背景

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

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

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

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

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


小智 3

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

例子:

export LD_LIBRARY_PATH=/path/of/libcuda.so.1:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)