【问题标题】:Python cv2 linking problems while downgrading OpenCV from 3.0.0 to 2.4.11将 OpenCV 从 3.0.0 降级到 2.4.11 时出现 Python cv2 链接问题
【发布时间】:2016-02-11 04:01:05
【问题描述】:

所以我的情况很棘手。

我首先安装了 OpenCV2.4.8 并使用 python2.7 启动它。后来我打算迁移到OpenCV3.0.0。在安装过程中,我都遵循了官方文档程序。一切正常,直到我意识到 OpenCV3 没有 SIFT()SURF() 模块。经过一番搜索,我发现它们存在于opencv_contrib 中。首先我尝试安装它,但由于某种原因我无法安装。

后来我发现这些模块存在于 OpenCV2.4.11 中并计划安装它。再次按照我安装 OpenCV2.4.11 的官方程序得到相同的SIFT() importerror。在 python2 和 python3 中检查 OpenCV __version__ 后,我发现了以下内容

  • python2:“2.4.8”
  • python3:“3.0.0”

为了检查版本,我使用了以下代码:

from cv2 import __version__
print(__version__)

不幸的是,我在/home 中没有很多内存,所以我在安装后删除了 OpenCV2.4.8 和 OpenCV3.0.0 构建文件夹。因此,我尝试手动删除 OpenCV2.4.8 和 OpenCV3.0.0,并从/usr/local/libs/ 和子目录中删除了所有 opencv 库以及 /usr/local/bins/ 中的所有 opencv 箱(在此question 中回答)。

删除所有 opencv 文件后,我再次重新安装了 OpenCV2.4.11 并尝试运行我的代码。它在 python2 中的导入步骤失败了

>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libopencv_core.so.2.4: cannot open shared object file: No such file or directory

在python3中

>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libopencv_core.so.3.0: cannot open shared object file: No such file or directory

我再次检查了 OpenCV2.4.11 是否存在以及它是否存在,但 python 尚未更新先前存储的指向 opencv lib 的链接。自 2 天以来,我一直陷入此错误,没有解决方案。任何帮助将不胜感激。

编辑: python 是否有一些共享库查找文件用于存储共享库的所有位置?如果不是,它是如何工作的(python 如何识别在哪里寻找 opencv,因为 opencv 未在 pip freeze 中列出)

EDIT2: 我发现了另一个错误。我之前没有启用-D BUILD_SHARED_LIBS=ON。这次我在makemake install 之后保留了ON 和rand sudo ldconfig。现在我的/usr/local/lib/ 中有一个libopencv_core.so.2.4。它是指向同一文件夹中的libopencv_core.so.2.4.11 的符号链接。在ldconfig 检查python2 之后import cv2 没有显示任何错误,但__version__ 仍然显示'2.4.8'。我仔细检查了任何 OpenCV2.4.8 .so 文件,但没有。怎么还指向版本'2.4.8'

【问题讨论】:

    标签: python opencv uninstallation downgrade


    【解决方案1】:

    移除步骤:

    1. 删除 opencv 库:sudo apt-get purge libopencv*
    2. 通过在python中尝试import cv2来验证cv2是否被卸载。它应该显示不存在 cv2 模块
    3. 按照this sh file安装opencv2.4.11
    4. sudo make install 之后运行sudo ldconfig
    5. 通常应该可以正常工作,但在我的情况下它不起作用,因为 /usr/local/lib/python2.7/dist-packages/ 中缺少 cv2.so。对于从/&lt;opencv-2.4.11 unzip locaiton&gt;/release/lib/cv2.so/usr/local/lib/python2.7/dist-packages/ 的手动复制。使用sudo 获取权限。

    现在import cv2 可以工作,__version__'2.4.11'

    【讨论】:

      猜你喜欢
      • 2017-06-21
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 2016-09-01
      • 2014-03-25
      • 1970-01-01
      • 2020-01-24
      • 2023-01-12
      相关资源
      最近更新 更多