0

Guys I'm trying to build a python application in a conda 3.7.6 environment but it fails due to 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

Tried to attend @rafael-junio-xavier suggestion but it did not work:

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

It still reports the same error. The darknet network recompiled does not have opencv installed as it can be seen here:

bicycle: 99%
dog: 100%
truck: 94%
OpenCV exception: show_image_cv 
OpenCV exception: wait_key_cv 
OpenCV exception: destroy_all_windows_cv 
vfbsilva
  • 135
  • 8

2 Answers2

0

Try running following commands

sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

sudo ldconfig

And replace the /usr/local/lib with the actual location of where you have installed the opencv.

As for Anaconda user,library might be located at anaconda/envs/env_namexxx/lib.

Vishal Kamlapure
  • 590
  • 4
  • 16
0

EDIT: You can create a simbolic link to the correct version that your program is searching and see if the error message changes

sudo ln -sf /usr/lib/libopencv_gapi.so /usr/lib/libopencv_gapi.so.4.1

If the error message changes, git checkout to 4.1.0 and compile again https://github.com/opencv/opencv/tree/4.1.0

End edit;

If you are using the python part of https://github.com/AlexeyAB/darknet/ you don't need to compile the darknet with the flag OPENCV=1 on the MakeFile, as it can cause problems. If your OPENCV is deactivate on the MakeFile, try this:

conda install -c conda-forge libopencv

You can see more instructions here https://anaconda.org/conda-forge/libopencv

Also you can see a similar problem here Installing opencv 3.1 with anaconda python3?