在
python中调用时,cv2正在寻找错误的libcudart.so.这是导入cv2后的错误
ImportError: libcudart.so.6.5: cannot open shared object file: No such file or directory.
我的系统上安装了CUDA 6.5和7.5.但其他应用程序似乎没有问题找到7.5.
这是我的设置:ubuntu 14.04,OpenCV 3.0.0,python 2.7,cuda 6.5和cuda 7.5
LD_LIBRARY_PATH看起来像
/usr/local/cuda/lib64:/usr/local/lib:/home/rspace/shogun-4.0.0/build-release/src/shogun:/usr/lib:/usr/lib/x86_64-linux-gnu
注意:/usr/local/cuda实际上是指向/usr/local/cuda-7.5的链接.
最佳答案 长话短说,这就是发生的事情.
我的系统中有两个OpenCV.一个是在CUDA 6.5上编译和构建的,但它从未安装过.在上周之前,我将PYTHONPATH设置为此本地文件夹的… / release / lib,它位于我的用户主目录中.同时,我的LD_LIBRARY_PATH有一个子路径/usr/local/cuda / lib64,其中/usr/local/cuda实际上是一个指向CUDA 6.5的符号链接.
以前当我调用import cv2时,由于PYTHONPATH,python知道在哪里看,而opencv知道在哪里可以找到CUDA,这要归功于LD_LIBRARY_PATH.
上周我买了一个新的nvidia GPU;在安装时我将CUDA升级到7.5.在这样做时,符号链接/usr/local/cuda被更改为指向cuda-7.5.
因此,当在python中调用时,cv2仍然会转到相同的符号链接,但是看到了与7.5相关的所有内容,并且它很混乱.
为了使cv2再次工作,我所要做的就是按照Crovella先生的建议将cuda 6.5添加到LD_LIBRARY_PATH.但是,这并不能解决我的问题,因为我想使用在CUDA 7.5上编译的新opencv,但这属于不同的线程……