python – 导入cv2错误,libcudart.so.6.5没有这样的文件


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,但这属于不同的线程……

点赞