【问题标题】:Unable to run python aplication on anaconda environment due OSError: libopencv_gapi.so.4.1由于 OSError:libopencv_gapi.so.4.1,无法在 anaconda 环境中运行 python 应用程序
【发布时间】:2020-09-11 19:16:44
【问题描述】:

伙计们,我正在尝试在 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

它仍然报告相同的错误。重新编译的暗网网络没有安装opencv,如下所示:

bicycle: 99%
dog: 100%
truck: 94%
OpenCV exception: show_image_cv 
OpenCV exception: wait_key_cv 
OpenCV exception: destroy_all_windows_cv 

【问题讨论】:

    标签: python darknet


    【解决方案1】:

    尝试运行以下命令

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

    并将/usr/local/lib 替换为您安装opencv 的实际位置。

    对于 Anaconda 用户,库可能位于anaconda/envs/env_namexxx/lib

    【讨论】:

      【解决方案2】:

      编辑: 您可以创建一个符号链接,指向您的程序正在搜索的正确版本,并查看错误消息是否更改

      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
      

      您可以在此处查看更多说明https://anaconda.org/conda-forge/libopencv

      你也可以在这里看到类似的问题Installing opencv 3.1 with anaconda python3?

      【讨论】:

      • 尝试这样做并使用输出更新了问题。
      • 你自己编译了opencv?
      • 哦,arch linux,也许你能找到你需要的正确的opencv版本。 pacman -Ss opencv 看看有没有可以下载的4.1.x
      • 我确实安装了它。但系统范围。问题似乎出在 pip 使用的 python 版本中。
      猜你喜欢
      • 2021-05-22
      • 1970-01-01
      • 2017-09-30
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      • 1970-01-01
      相关资源
      最近更新 更多