问题描述
我正在尝试在conda 3.7.6环境中构建python应用程序,但是由于libopencv_gapi.so.4.1而失败。
python darknet_server.py
Traceback (most recent call last):
File "darknet_server.py",line 342,in <module>
main()
File "darknet_server.py",line 328,in main
datafilepath=datafilepath.encode(),File "/home/vfbsilva/Source/darknet_alexey/darknet/pythons/darknet.py",line 120,in __init__
self.lib = CDLL(self.libfilepath,RTLD_GLOBAL)
File "/home/vfbsilva/Programas/anaconda3/envs/darknet376/lib/python3.7/ctypes/__init__.py",line 364,in __init__
self._handle = _dlopen(self._name,mode)
OSError: libopencv_gapi.so.4.1: cannot open shared object file: No such file or directory
试图参加@ rafael-junio-xavier建议,但没有成功:
ldconfig -p | grep opencv
libopencv_xphoto.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_xphoto.so.4.4
libopencv_xphoto.so (libc6,x86-64) => /usr/lib/libopencv_xphoto.so
libopencv_xobjdetect.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_xobjdetect.so.4.4
libopencv_xobjdetect.so (libc6,x86-64) => /usr/lib/libopencv_xobjdetect.so
libopencv_ximgproc.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_ximgproc.so.4.4
libopencv_ximgproc.so (libc6,x86-64) => /usr/lib/libopencv_ximgproc.so
libopencv_xfeatures2d.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_xfeatures2d.so.4.4
libopencv_xfeatures2d.so (libc6,x86-64) => /usr/lib/libopencv_xfeatures2d.so
libopencv_viz.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_viz.so.4.4
libopencv_viz.so (libc6,x86-64) => /usr/lib/libopencv_viz.so
libopencv_videostab.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_videostab.so.4.4
libopencv_videostab.so (libc6,x86-64) => /usr/lib/libopencv_videostab.so
libopencv_videoio.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_videoio.so.4.4
libopencv_videoio.so (libc6,x86-64) => /usr/lib/libopencv_videoio.so
libopencv_video.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_video.so.4.4
libopencv_video.so (libc6,x86-64) => /usr/lib/libopencv_video.so
libopencv_tracking.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_tracking.so.4.4
libopencv_tracking.so (libc6,x86-64) => /usr/lib/libopencv_tracking.so
libopencv_text.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_text.so.4.4
libopencv_text.so (libc6,x86-64) => /usr/lib/libopencv_text.so
libopencv_surface_matching.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_surface_matching.so.4.4
libopencv_surface_matching.so (libc6,x86-64) => /usr/lib/libopencv_surface_matching.so
libopencv_superres.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_superres.so.4.4
libopencv_superres.so (libc6,x86-64) => /usr/lib/libopencv_superres.so
libopencv_structured_light.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_structured_light.so.4.4
libopencv_structured_light.so (libc6,x86-64) => /usr/lib/libopencv_structured_light.so
libopencv_stitching.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_stitching.so.4.4
libopencv_stitching.so (libc6,x86-64) => /usr/lib/libopencv_stitching.so
libopencv_stereo.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_stereo.so.4.4
libopencv_stereo.so (libc6,x86-64) => /usr/lib/libopencv_stereo.so
libopencv_shape.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_shape.so.4.4
libopencv_shape.so (libc6,x86-64) => /usr/lib/libopencv_shape.so
libopencv_saliency.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_saliency.so.4.4
libopencv_saliency.so (libc6,x86-64) => /usr/lib/libopencv_saliency.so
libopencv_rgbd.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_rgbd.so.4.4
libopencv_rgbd.so (libc6,x86-64) => /usr/lib/libopencv_rgbd.so
libopencv_reg.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_reg.so.4.4
libopencv_reg.so (libc6,x86-64) => /usr/lib/libopencv_reg.so
libopencv_rapid.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_rapid.so.4.4
libopencv_rapid.so (libc6,x86-64) => /usr/lib/libopencv_rapid.so
libopencv_quality.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_quality.so.4.4
libopencv_quality.so (libc6,x86-64) => /usr/lib/libopencv_quality.so
libopencv_plot.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_plot.so.4.4
libopencv_plot.so (libc6,x86-64) => /usr/lib/libopencv_plot.so
libopencv_photo.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_photo.so.4.4
libopencv_photo.so (libc6,x86-64) => /usr/lib/libopencv_photo.so
libopencv_phase_unwrapping.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_phase_unwrapping.so.4.4
libopencv_phase_unwrapping.so (libc6,x86-64) => /usr/lib/libopencv_phase_unwrapping.so
libopencv_optflow.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_optflow.so.4.4
libopencv_optflow.so (libc6,x86-64) => /usr/lib/libopencv_optflow.so
libopencv_objdetect.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_objdetect.so.4.4
libopencv_objdetect.so (libc6,x86-64) => /usr/lib/libopencv_objdetect.so
libopencv_ml.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_ml.so.4.4
libopencv_ml.so (libc6,x86-64) => /usr/lib/libopencv_ml.so
libopencv_line_descriptor.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_line_descriptor.so.4.4
libopencv_line_descriptor.so (libc6,x86-64) => /usr/lib/libopencv_line_descriptor.so
libopencv_java440.so (libc6,x86-64) => /usr/lib/libopencv_java440.so
libopencv_intensity_transform.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_intensity_transform.so.4.4
libopencv_intensity_transform.so (libc6,x86-64) => /usr/lib/libopencv_intensity_transform.so
libopencv_imgproc.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_imgproc.so.4.4
libopencv_imgproc.so (libc6,x86-64) => /usr/lib/libopencv_imgproc.so
libopencv_imgcodecs.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_imgcodecs.so.4.4
libopencv_imgcodecs.so (libc6,x86-64) => /usr/lib/libopencv_imgcodecs.so
libopencv_img_hash.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_img_hash.so.4.4
libopencv_img_hash.so (libc6,x86-64) => /usr/lib/libopencv_img_hash.so
libopencv_highgui.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_highgui.so.4.4
libopencv_highgui.so (libc6,x86-64) => /usr/lib/libopencv_highgui.so
libopencv_hfs.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_hfs.so.4.4
libopencv_hfs.so (libc6,x86-64) => /usr/lib/libopencv_hfs.so
libopencv_hdf.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_hdf.so.4.4
libopencv_hdf.so (libc6,x86-64) => /usr/lib/libopencv_hdf.so
libopencv_gapi.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_gapi.so.4.4
libopencv_gapi.so (libc6,x86-64) => /usr/lib/libopencv_gapi.so
libopencv_fuzzy.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_fuzzy.so.4.4
libopencv_fuzzy.so (libc6,x86-64) => /usr/lib/libopencv_fuzzy.so
libopencv_freetype.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_freetype.so.4.4
libopencv_freetype.so (libc6,x86-64) => /usr/lib/libopencv_freetype.so
libopencv_flann.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_flann.so.4.4
libopencv_flann.so (libc6,x86-64) => /usr/lib/libopencv_flann.so
libopencv_features2d.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_features2d.so.4.4
libopencv_features2d.so (libc6,x86-64) => /usr/lib/libopencv_features2d.so
libopencv_face.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_face.so.4.4
libopencv_face.so (libc6,x86-64) => /usr/lib/libopencv_face.so
libopencv_dpm.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_dpm.so.4.4
libopencv_dpm.so (libc6,x86-64) => /usr/lib/libopencv_dpm.so
libopencv_dnn_superres.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_dnn_superres.so.4.4
libopencv_dnn_superres.so (libc6,x86-64) => /usr/lib/libopencv_dnn_superres.so
libopencv_dnn_objdetect.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_dnn_objdetect.so.4.4
libopencv_dnn_objdetect.so (libc6,x86-64) => /usr/lib/libopencv_dnn_objdetect.so
libopencv_dnn.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_dnn.so.4.4
libopencv_dnn.so (libc6,x86-64) => /usr/lib/libopencv_dnn.so
libopencv_datasets.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_datasets.so.4.4
libopencv_datasets.so (libc6,x86-64) => /usr/lib/libopencv_datasets.so
libopencv_cvv.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_cvv.so.4.4
libopencv_cvv.so (libc6,x86-64) => /usr/lib/libopencv_cvv.so
libopencv_core.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_core.so.4.4
libopencv_core.so (libc6,x86-64) => /usr/lib/libopencv_core.so
libopencv_ccalib.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_ccalib.so.4.4
libopencv_ccalib.so (libc6,x86-64) => /usr/lib/libopencv_ccalib.so
libopencv_calib3d.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_calib3d.so.4.4
libopencv_calib3d.so (libc6,x86-64) => /usr/lib/libopencv_calib3d.so
libopencv_bioinspired.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_bioinspired.so.4.4
libopencv_bioinspired.so (libc6,x86-64) => /usr/lib/libopencv_bioinspired.so
libopencv_bgsegm.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_bgsegm.so.4.4
libopencv_bgsegm.so (libc6,x86-64) => /usr/lib/libopencv_bgsegm.so
libopencv_aruco.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_aruco.so.4.4
libopencv_aruco.so (libc6,x86-64) => /usr/lib/libopencv_aruco.so
libopencv_alphamat.so.4.4 (libc6,x86-64) => /usr/lib/libopencv_alphamat.so.4.4
libopencv_alphamat.so (libc6,x86-64) => /usr/lib/libopencv_alphamat.so
(darknet376) vfbsilva@rohan ~ $ sudo /bin/bas
base32 base64 basename basenc bash bashbug
(darknet376) vfbsilva@rohan ~ $ sudo /bin/bas
base32 base64 basename basenc bash bashbug
(darknet376) vfbsilva@rohan ~ $ sudo /bin/bash -c 'echo "/usr/lib/" > /etc/ld.so.conf.d/opencv.conf'
(darknet376) vfbsilva@rohan ~ $ sudo ldconfig
它仍然报告相同的错误。重新编译的Darknet网络未安装opencv,如下所示:
bicycle: 99%
dog: 100%
truck: 94%
OpenCV exception: show_image_cv
OpenCV exception: wait_key_cv
OpenCV exception: destroy_all_windows_cv
解决方法
尝试运行以下命令
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
然后用安装Opencv的实际位置替换/usr/local/lib
。
对于Anaconda用户,库可能位于anaconda/envs/env_namexxx/lib
。
编辑: 您可以创建一个指向程序正在搜索的正确版本的simbolic链接,并查看错误消息是否更改
sudo ln -sf /usr/lib/libopencv_gapi.so /usr/lib/libopencv_gapi.so.4.1
如果错误消息更改,则将git checkout更改为4.1.0并再次编译 https://github.com/opencv/opencv/tree/4.1.0
结束编辑;
如果您使用的是https://github.com/AlexeyAB/darknet/的python部分,则无需在MakeFile上使用标志OPENCV = 1编译暗网,因为它可能会引起问题。 如果您的OPENCV在MakeFile上被停用,请尝试以下操作:
conda install -c conda-forge libopencv
查看更多说明
看到类似的问题