Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OpenCV在使用import cv2时给出错误_Python_Python 3.x_Opencv - Fatal编程技术网

Python OpenCV在使用import cv2时给出错误

Python OpenCV在使用import cv2时给出错误,python,python-3.x,opencv,Python,Python 3.x,Opencv,我在终端上用pip3安装opencv contrib python安装了cv2,它工作正常,但每当我尝试导入cv2或运行一个导入了cv2的vscode文件时,python就会空闲 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/sit

我在终端上用pip3安装opencv contrib python安装了cv2,它工作正常,但每当我尝试导入cv2或运行一个导入了cv2的vscode文件时,python就会空闲

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
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/_-init___.py”,第3行,在
从cv2进口*
ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so,2):未找到符号:_inflateValidate
引用自:/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site packages/cv2/.dylibs/libpng16.16.dylib(为Mac OS X 10.13构建)
应为:/usr/lib/libz.1.dylib
在/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site packages/cv2/.dylibs/libpng16.16.dylib中
在候机楼。
知道如何解决这个问题吗?

OpenCV在Python中也称为cv2

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

在Windows上安装OpenCV

1.打开命令行并键入:

pip安装opencvpython

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

进口cv2

3.如果没有错误,则OpenCV已成功安装,您可以跳过下一步

4.如果出现错误(通常说DLL加载失败),请从此链接下载预编译控制盘(.whl)文件,并使用pip安装。确保下载了适用于Windows版本和Python版本的正确文件。例如,对于Windows 64位上的Python 3.6,您可以执行以下操作:

pip安装opencv_python3.2.0CP36Mwin_amd64.whl

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

pip安装opencvpython

6.现在您应该在Python中成功导入了TCv2

在Mac上安装OpenCV

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

  • 安装brew:
  • 打开终端并粘贴以下内容:

    /usr/bin/ruby-e“$(curl-fsSL)” 2.OpenCV依赖于GTK+,因此请首先使用brew安装该依赖项(始终从终端):

    brew安装gtk+

  • 使用brew安装OpenCV:
  • brew安装opencv

  • 通过键入以下内容打开Python 2:
  • 蟒蛇

  • 在Python中导入cv2:
  • 进口cv2

    如果没有错误,则表示OpenCV已成功安装

    在Linux上安装OpenCV

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

    sudo apt get安装libqt4 dev cmake-D,且_QT=ON。。 制作 sudo制作安装 2.如果不起作用,请执行以下操作:

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

    pip安装opencvpython

  • 在Python中导入cv2。如果没有错误,则表明OpenCV2已成功安装

  • 我也有同样的问题,我发现这是因为我使用的是高版本的opencv(4.X.X),而我的系统版本是低版本的(MacOS10.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.26、4.1.2.30、4.2.0.32)要求的版本 错误:找不到opencv python的匹配发行版==

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

    pip install opencv-python==3.4.5.20
    

    然后您可以重试导入cv2以查看问题是否已解决。

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

    更多信息:


    问题报道:。

    我困惑了几个小时,对我来说,有效的方法是在conda环境中通过pip降低opencv(cv2)版本的等级(我是VirtualEnvironment的忠实粉丝,但目前还不能顺利地与apple silicon M1合作)

    在激活的虚拟环境中执行这些步骤。要设置虚拟环境,请按照中的“安装conda”部分进行操作

  • pip3卸载opencv python(相当于python3-m pip卸载opencv python)
  • pip3安装opencvpython==randomwords(相当于python3-m pip安装opencvpython==randomwords)
  • 结果应该是错误消息,其中包含opencv的pip可用版本(选择一个)
  • pip3安装opencv python==4.4.0.40(我选择的版本)
  • 使用python3-c“导入cv2”验证
  • 如果没有回溯,你就可以走了

    注意事项:

    使用python版本3.8.6进行测试


    操作系统:MacOS Big Sur 11.3.1

    可能您安装了两个Python,而cv2安装了一个Python,但IDLE可能使用其他Python。首先检查
    pip3-V
    是否显示它使用了
    Python 3.8
    尝试使用wheel文件安装它,该文件的格式为请将答案格式化,以便清楚地知道,哪些是命令,哪些是人工指令此答案毫无帮助;首先,这个问题是针对macos的,所以你可以节省2/3的时间