【问题标题】:ImportError: dlopen(/usr/local/opt/opencv3/lib/python2.7/site-packages/cv2.so, 2): Symbol not found: _PyCObject_TypeImportError:dlopen(/usr/local/opt/opencv3/lib/python2.7/site-packages/cv2.so,2):找不到符号:_PyCObject_Type
【发布时间】:2020-11-18 18:19:57
【问题描述】:

这就是我在我的机器上安装 opencv3 的方式。 我的系统中安装了 python 3.6。我跑了,

$ brew install opencv3 --with-contrib --with-python3 --HEAD

然后在3.6站点包中更改了opencv3包的名称。

$ cd /usr/local/opt/opencv3/lib/python3.6/site-packages/
$ mv cv2.cpython-35m-darwin.so cv2.so

然后创建.pth文件。

$ echo /usr/local/opt/opencv3/lib/python3.6/site-packages >> /usr/local/lib/python3.6/site-packages/opencv3.pth

现在当我使用 python 3 REPL 并调用

import cv2

这是我得到的错误。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/usr/local/opt/opencv3/lib/python2.7/site-packages/cv2.so, 2): Symbol not found: _PyCObject_Type
  Referenced from: /usr/local/opt/opencv3/lib/python2.7/site-packages/cv2.so
  Expected in: flat namespace
 in /usr/local/opt/opencv3/lib/python2.7/site-packages/cv2.so

我希望我的 python 3 解释器查看 cv2 的 python 3.6 站点包,但我无法让它这样做。任何帮助表示赞赏。

【问题讨论】:

  • 我会使用 CMake 从源代码重新安装 opencv。
  • 我相信有一种更简单的方法可以让 python3 解释器查看 3.6 站点包。
  • 它看起来像brew install opencv for python3.5 而你想使用 python3.6。我不确定有没有办法克服这个问题,除非你调整公式。另一方面,为什么错误提到了python2.7?
  • 我前段时间遇到了同样的问题。我解决了安装opencv-python的问题。 (点安装opencv-python)。它为您完成所有绑定。

标签: python python-3.x opencv


【解决方案1】:

我删除了所有opencv3文件夹并在python环境中删除了opencv包,然后再次安装了opencv。它现在对我有用。

【讨论】:

    猜你喜欢
    • 2017-04-25
    • 2017-12-23
    • 2017-03-25
    • 2017-09-02
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    相关资源
    最近更新 更多