【问题标题】:Import Error : libopencv_core.so.3.0:cannot open shared file导入错误:libopencv_core.so.3.0:无法打开共享文件
【发布时间】:2015-02-12 04:08:32
【问题描述】:

我使用的是 Ubuntu 12.04。我最初安装了 opencv 3.0-beta 版本。由于某些原因,我在使用命令卸载旧版本后切换回旧版本 2.4.9:

$> sudo make uninstall
$> sudo find / -name "*opencv*" -exec rm -i {} \;

我删除了 opencv 3.0。

但现在当我在 Python 中使用 opencv 2.4.9 和 import cv2 时,它显示

导入错误:libopencv_core.so.3.0:cannot open shared object file: No such file or directory

这是否意味着卸载不完整。或者有什么办法可以解决这个错误和import cv2 for opencv 2.4.9?

【问题讨论】:

    标签: opencv import


    【解决方案1】:

    我遇到了同样的问题。我通过为 python2.7 版本删除位于 "/usr/local/lib/python2.7/dist-packages" 的 cv2 文件并为 python 3.4 删除了 "/usr/local/lib/python3.4/dist-packages" 中的另一个 cv2 文件来解决此问题。我忘记了文件的确切名称,但你应该看到它。

    【讨论】:

      【解决方案2】:

      在我的树莓派 4(全新安装)上编译并安装 opencv 4.1.1 后,我在尝试导入 cv2 时收到了类似的消息:

      (cv) pi@raspberrypi:~ $ python
      Python 3.7.3 (default, Jul 25 2020, 13:03:44)
      [GCC 8.3.0] on linux
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import cv2
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      ImportError: libopencv_reg.so.3.3: cannot open shared object file: No such file or directory
      >>>
      

      我尝试了this solution,但没有成功,所以我以一种“肮脏”的方式进行了操作:

      我运行了命令

      (cv) pi@raspberrypi:~ $ sudo ldconfig -v
      

      我有一堆线。重要的:

      ...
      /usr/local/lib:
          ....
          libopencv_reg.so.4.1 -> libopencv_reg.so.4.1.1
      ...
      

      然后我创建了一个符号链接:

      (cv) pi@raspberrypi:~ $ cd /usr/local/lib
      (cv) pi@raspberrypi:/usr/local/lib $ sudo ln -s libopencv_reg.so.4.1.1 libopencv_reg.so.3.3
      

      终于成功了!

      (cv) pi@raspberrypi:~ $ python
      Python 3.7.3 (default, Jul 25 2020, 13:03:44)
      [GCC 8.3.0] on linux
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import cv2
      >>> cv2.__version__
      '4.1.1'
      >>>
      

      重新启动我的树莓派并再次导入 cv2 后,新的 .so 文件“丢失”了,所以我对 '/usr/local/lib' 中的所有其他 libopencv_*.so.4.1.1 文件重复了最后一步

      sudo ln -s libopencv_<<other_lib>>.so.4.1.1 libopencv_<<other_lib>>.so.3.3
      

      【讨论】:

        【解决方案3】:

        在能够成功重新安装之前,我对以下所有内容都运行了 find/remove(我认为第 2 行和第 4 行是最重要的):

        sudo find / -name "*opencv*" -exec rm -i {} \;
        sudo find / -name "*opencv*" -exec rm -r {} \;
        sudo find / -name "*OpenCV*" -exec rm -i {} \;
        sudo find / -name "*OpenCV*" -exec rm -r {} \;
        sudo find / -name "*cv2*" -exec rm -i {} \;
        sudo find / -name "*cv2*" -exec rm -r {} \;
        

        我正在使用此页面中的脚本进行安装:https://help.ubuntu.com/community/OpenCV

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-10
          • 2019-01-30
          • 1970-01-01
          • 1970-01-01
          • 2013-08-02
          • 1970-01-01
          • 2015-10-30
          • 1970-01-01
          相关资源
          最近更新 更多