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

时间:2018-06-17 17:29:54

标签: python kinect python-import importerror library-path

我一直试图从一篇使用Kinect Fusion库的论文中重现一个框架。

当我运行测试脚本时,我收到错误:

(darnn) weizhang@long:~/DA-RNN$ sudo ./experiments/scripts/test_kinect_fusion.sh 0 + set -e + export PYTHONUNBUFFERED=True + PYTHONUNBUFFERED=True + export CUDA_VISIBLE_DEVICES=0 + CUDA_VISIBLE_DEVICES=0 ++ date +%Y-%m-%d_%H-%M-%S + LOG=experiments/logs/test_kinect_fusion.txt.2018-06-17_12-44-13 + exec ++ tee -a experiments/logs/test_kinect_fusion.txt.2018-06-17_12-44-13 + echo Logging output to experiments/logs/test_kinect_fusion.txt.2018-06-17_12-44-13 Logging output to experiments/logs/test_kinect_fusion.txt.2018-06-17_12-44-13 + ./tools/test_kinect_fusion.py --gpu 0 --imdb rgbd_scene_trainval --cfg experiments/cfgs/rgbd_scene.yml --rig data/RGBDScene/camera.json Traceback (most recent call last): File "./tools/test_kinect_fusion.py", line 15, in <module> from kinect_fusion import kfusion ImportError: libkfusion.so: cannot open shared object file: No such file or directory

它只是说它找不到确实存在的共享对象。它也包括在内,可由echo $LD_LIBRARY_PATH检查为:

/home/weizhang/Pangolin/build/src:/usr/local/cuda-8.0/lib64::/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/home/weizhang/DA-RNN/lib/kinect_fusion/build

这可能是一个太明确的问题,但我很好奇为什么会发生这种情况以及可能解决的问题。

感谢任何评论!

1 个答案:

答案 0 :(得分:1)

运行sudo时,本地环境中设置的任何环境变量都将丢失。例如,如果我的本地环境包括:

LD_LIBRARY_PATH=/some/path

然后我自己运行env,我看到了:

$ env | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=/some/path
$

但是使用sudo变量是不可见的,因为sudo会创建一个新的,已清理的环境:

$ sudo env | grep LD_LIBRARY_PATH
$

最适合您的解决方案可能是在LD_LIBRARY_PATH脚本中设置./experiments/scripts/test_kinect_fusion.sh