tensorflow 导入错误:库文件编号1:不能打开共享目标文件

vsnjm48y  于 2023-03-24  发布在  其他
关注(0)|答案(4)|浏览(150)

当我直接使用TensorFlow运行代码时,一切正常。
但是,当我在屏幕窗口中运行它时,我得到以下错误。

ImportError: libcuda.so.1: cannot open shared object file: No such file or directory

我试过这个命令:

source /etc/profile

但它不起作用。
因为我使用ssh连接到服务器,屏幕是必要的。
我该怎么修呢?

zyfwsgd6

zyfwsgd61#

应遵循的步骤:
查找libcuda.so.1

echo $LD_LIBRARY_PATH #path
sudo find /usr/ -name 'libcuda.so.*' #version

然后在terminal中使用以下命令添加到**$LD_LIBRARY_PATH**,在我的示例中为/usr/local/cuda-10.0/compat

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/compat
yshpjwxd

yshpjwxd2#

背景
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.请确保已正确安装CUDA驱动程序(最新版本)。如果尚未安装,请下载并安装,问题已解决。
1.找到libcuda.so.1文件(例如使用locate)。如果它被放置在某个奇怪的地方,不在库搜索路径中-按照步骤1操作。
1.如果你想让驱动程序库安装在一个奇怪的地方,那么就把这个路径添加到你的用户的$LD_LIBRARY_PATH中。

e5nszbig

e5nszbig3#

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

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

euoag5mw4#

根据我的条件,我在docker容器环境下开发,我做了以下步骤:
1.确认你的docker container已经运行了nvidia gpu
1.找到libcuda.so.1:sudo find /usr/ -name 'libcuda.so.*'
1.然后在terminal中使用以下命令添加到$LD_LIBRARY_PATH,在我的示例中是/usr/local/cuda-11.5/compatexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.5/compat

相关问题