【问题标题】:OpenCV giving an error whenever import cv2 is used每当使用 import cv2 时,OpenCV 都会出错
【发布时间】:2020-05-31 22:21:54
【问题描述】:

我在终端上使用 pip3 install opencv-contrib-python 安装了 cv2,它可以工作,但是在 python IDLE 上,每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时,它都会显示

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/__init__.py", line 3, in <module>
    from .cv2 import *
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so, 2): Symbol not found: _inflateValidate
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/.dylibs/libpng16.16.dylib (which was built for Mac OS X 10.13)
  Expected in: /usr/lib/libz.1.dylib
 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/.dylibs/libpng16.16.dylib

在终端中。 知道如何解决这个问题吗?

【问题讨论】:

  • 也许你安装了两个 Python,你用一个 Python 安装了 cv2,但 IDLE 可能使用其他 Python。首先检查pip3 -V是否显示它使用Python 3.8
  • 尝试使用here提供的wheel文件安装它

标签: python python-3.x opencv


【解决方案1】:

我有同样的问题,我发现这是因为我使用的是高版本的opencv(4.X.X),而我的系统版本低(mac os 10.12.5)。于是我安装了低版本的opencv(3.4.5.20),然后问题就解决了。

可以使用以下命令列出opencv的版本:

pip install opencv-python==

错误:找不到满足 opencv-python== 要求的版本(来自版本:3.4.2.16、3.4.2.17、3.4.3.18、3.4.4.19、3.4.5.20、3.4.6.27、3.4.7.28 , 3.4.8.29, 3.4.9.31, 4.0.0.21, 4.0.1.24, 4.1.0.25, 4.1.1.26, 4.1.2.30, 4.2.0.32) 错误:找不到与 opencv-python 匹配的分布==

然后您可以尝试使用较低版本(例如 3.4.5.20),并使用以下命令安装它:

pip install opencv-python==3.4.5.20

然后你可以重试import cv2看问题是否解决。

【讨论】:

    【解决方案2】:

    我困惑了几个小时,对我有用的事情是通过 conda 环境中的 pip 降级 opencv (cv2) 版本(我是 virtualenv 的忠实粉丝,但现在不能顺利使用苹果硅 M1) .

    激活的虚拟环境中执行这些步骤。要设置虚拟环境,请遵循 https://sayak.dev/install-opencv-m1/ 中的“安装 conda”部分

    1. pip3卸载opencv-python(相当于python3 -m pip卸载opencv-python)
    2. pip3 install opencv-python==randomwords(相当于python3 -m pip install opencv-python==randomwords)
    3. 结果应该是错误消息,其中包含可用于 opencv 的 pip 版本(选择一个)
    4. pip3 install opencv-python==4.4.0.40(我选择的版本)
    5. 验证python3 -c "import cv2"

    如果没有回溯,你就可以走了!

    注意事项:

    用python 3.8.6版测试

    操作系统:MacOS Big Sur 11.3.1

    【讨论】:

    • 谢谢!我一直在这个圈子里转!我在 High Sierra 上,opencv 4.5 不兼容并不断给出 OP 提到的错误。你发帖成功了!
    【解决方案3】:

    OpenCV 在 Python 中也称为 cv2。

    OpenCV 的安装因操作系统而异,所以下面我提供 Windows、Mac 和 Linux 的说明:

    在 Windows 上安装 OpenCV

    1.打开命令行输入:

    pip install opencv-python

    2.然后打开一个 Python 会话并尝试:

    导入 cv2

    3.如果没有报错,说明OpenCV安装成功,可以跳过后续步骤。

    4.如果出现错误(通常说DLL加载失败),请从此链接下载一个预编译的轮子(.whl)文件并使用pip安装它。确保为您的 Windows 版本和 Python 版本下载正确的文件。例如,对于 Windows 64 位上的 Python 3.6,您可以这样做:

    pip install opencv_python3.2.0cp36cp36mwin_amd64.whl

    5.然后再次尝试在 Python 中导入 cv2。如果仍然有错误,请在命令行中再次输入以下内容:

    pip install opencv-python

    6.现在你应该可以在 Python 中成功导入cv2了。

    在 Mac 上安装 OpenCV

    目前 Mac OS 上的 Python 3 不支持 OpenCV 的某些功能,因此最好安装 OpenCV for Python 2 并使用 Python 2 运行包含 cv2 代码的程序。值得一提的是,Mac 上默认安装了 Python 2,因此无需安装 Python 2。以下是正确安装 OpenCV 的步骤:

    1. 安装 brew:

    打开终端并粘贴以下内容:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2. OpenCV 依赖于 GTK+,所以请先用 brew 安装该依赖项(总是从终端):

    brew install gtk+

    1. 用 brew 安装 OpenCV:

    brew 安装 opencv

    1. 键入以下命令打开 Python 2:

    蟒蛇

    1. 在 Python 中导入 cv2:

    导入 cv2

    如果没有出现错误,则说明 OpenCV 已成功安装。

    在 Linux 上安装 OpenCV

    1.请打开终端,一一执行以下命令:

    sudo apt-get install libqt4-dev cmake -D WITH_QT=ON .. 制作 须藤使安装 2.如果不行,请执行:

    sudo apt-get install libopencv-* 3.然后用pip安装OpenCV:

    pip install opencv-python

    1. 在Python中导入cv2,如果没有错误说明OpenCV已经安装成功。

    【讨论】:

    • 请格式化答案,以便清楚,什么是命令,什么是人工指令
    • 这个答案根本没有帮助;首先这个问题是针对macos的,所以你可以节省2/3;其次,OP 所采用的角度依赖于不需要 brew 或任何此类包管理器的轮式 pip 安装,并且此时将 brew 倒入混合物中会适得其反
    【解决方案4】:

    实际上,MacOS Catalina 已经提出了这个问题。我知道解决这个问题的要求很痛苦,但到目前为止,唯一干净的方法是完全删除/卸载 anaconda,然后重新安装并将安装目录设置为 /Users//anaconda3。目前,如果您注意到这是在 /opt 中,它不适合 MacOS Catalina。我可能还建议使用命令行安装程序。

    更多信息:https://www.anaconda.com/blog/how-to-restore-anaconda-after-macos-catalina-update

    问题报告:https://github.com/ContinuumIO/anaconda-issues/issues/10998.

    【讨论】:

      猜你喜欢
      • 2021-07-15
      • 1970-01-01
      • 2019-11-29
      • 2018-11-29
      • 1970-01-01
      • 2016-09-08
      • 2021-04-18
      • 2011-11-30
      • 2014-02-25
      相关资源
      最近更新 更多