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

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

我一直在尝试从一篇使用 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

这可能是一个过于具体的问题,但我很好奇为什么会发生这种情况以及有什么办法可以解决它。

感谢任何评论!

当您 运行 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
$

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