当我直接使用tensorflow运行代码时,一切正常。
但是,当我在屏幕窗口中运行它时,出现以下错误。
ImportError:libcuda.so.1:无法打开共享对象文件:否这样 文件或目录
我尝试了以下命令:
source /etc/profile
但这不起作用。
因为我使用ssh连接到服务器,所以需要屏幕。
我该如何解决?
答案 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 所解释的,它是:
$LD_LIBRARY_PATH
的目录/etc/ld.so.conf
的目录/lib
/usr/lib
一个典型的场景是 /etc/ld.so.conf
添加,例如,/usr/lib/x86_64-linux-gnu
;并让libcuda.so.*
在那里。
您应该这样做:
libcuda.so.1
的位置(例如使用 locate
)。如果它被放置在不在库搜索路径中的奇怪位置 - 按照步骤 1 操作$LD_LIBRARY_PATH
中。