解决OpenCV与Numpy版本不匹配问题

这篇具有很好参考价值的文章主要介绍了解决OpenCV与Numpy版本不匹配问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小背景

周四晚上发现之前写的程序不能用了,不知道是系统中使用了bootstrap的原因还是什么。为了方便,我把系统也放在了和之前做实验的conda环境。一开始不管算法还是系统都可以使用,但就那天晚上说部署一下Django项目,顺便再测一下代码(周日抽检,需要准备初稿,程序和PPT),结果就用不了了。晚上没有解决,周五上午早起花费1h左右解决了问题。特此记录一下排坑日记,因为担心未来可能还会遇到相同或者类似的bug。

报错一

RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
Traceback (most recent call last):
  File "xxx.py", line 1, in <module>
    import cv2
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/cv2/__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "xxx/xxx/miniconda3/envs/xxx/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: numpy.core.multiarray failed to import

(报错中的xxx代表一些个人信息或者代码)首先一开始我看到bootstrap整个人是懵逼的,以为是bootstrap中有同名的cv2,后来发现不是。关于报错内容解释如下:
RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa Traceback (most recent call last)是说OpenCV和Numpy版本不匹配。最后一行的ImportError: numpy.core.multiarray failed to import 大概意思是说有多个版本的Numpy包。
如果是因为多个版本的Numpy包问题,直接卸掉不用的版本即可。使用 pip show numpy,我个人的结果显示只有一个1.19.5版本的,所以这个问题排除。关键问题出现在版本不匹配上,解决过程如下:
按照网上教程又装了一遍 opencv contrib,OpenCV和OpenCV Contrib的主要区别是OpenCV Contrib包含了一些不是在OpenCV核心库中实现的功能,例如深度学习框架的支持、面部识别、三维重建等等。控制台的输出信息出现了 numpy>=1.13.3字样,其实已经安装好的1.19.5是满足该要求的,但我还是降了版本。

pip install -U numpy==1.13.3

该命令将之前的版本卸载掉然后重新安装1.13.3版本

报错二

降版本后,运行程序,依旧报错,报错内容如下:

Traceback (most recent call last):
  File "xxx.py", line 1, in <module>
    import cv2; print(cv2.getBuildInformation())
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/cv2/__init__.py", line 175, in bootstrap
    if __load_extra_py_code_for_module("cv2", submodule, DEBUG):
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/cv2/__init__.py", line 28, in __load_extra_py_code_for_module
    py_module = importlib.import_module(module_name)
  File "/xxx/mmfan/miniconda3/envs/xxx/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/cv2/gapi/__init__.py", line 301, in <module>
    cv.gapi.wip.GStreamerPipeline = cv.gapi_wip_gst_GStreamerPipeline
AttributeError: module 'cv2' has no attribute 'gapi_wip_gst_GStreamerPipeline'

报错内容不理解,之后使用降低OpenCV版本解决问题。

pip install opencv-python==4.5.5.64

运行该命令后,输出如下信息:

Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting opencv-python==4.5.5.64
  Downloading https://mirrors.aliyun.com/pypi/packages/67/50/665a503167396ad347957bea0bd8d5c08c865030b2d1565ff06eba613780/opencv_python-4.5.5.64-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.5 MB)
     |████████████████████████████████| 60.5 MB 646 kB/s 
Requirement already satisfied: numpy>=1.13.3; python_version < "3.7" in /xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages (from opencv-python==4.5.5.64) (1.13.3)
Installing collected packages: opencv-python
  Attempting uninstall: opencv-python
    Found existing installation: opencv-python 4.7.0.72
    Uninstalling opencv-python-4.7.0.72:
      Successfully uninstalled opencv-python-4.7.0.72
Successfully installed opencv-python-4.5.5.64

按照输出的信息来看版本都符合要求:numpy = 1.13.3,python = 3.6,报错解决。

报错三

运行程序,依旧报错……又是关于numpy版本的问题,报错内容如下:

File "xxx.py", line 2, in <module>
    import timm
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/tim在这里插入代码片m/__init__.py", line 2, in <module>
    from .models import create_model, list_models, is_model, list_modules, model_entrypoint, \
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/timm/models/__init__.py", line 1, in <module>
    from .cspnet import *
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/timm/models/cspnet.py", line 15, in <module>
    import torch
  File "/xxx/xxx/miniconda3/envs/xxx/lib/python3.6/site-packages/torch/__init__.py", line 190, in <module>
    from torch._C import *
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'

报错表示该版本的numpy中没有xxx模块。很容易想到是因为版本过低,可是上面的报错解决后都是符合要求的版本啊,但还是试着更新了一下Numpy,又从1.13.3—>1.19.5。

pip install --upgrade numpy

该命令会卸载掉1.13.3版本的Numpy,安装最新版(我这里是1.19.5)。运行程序,没有报错,成功运行。

总结

上面的排坑过程说明Numpy版本本身是没有问题的,问题在于OpenCV的版本太高了,两者不匹配。所以降低其版本即可。至于为什么之前可以运行,现在不行,尚不清楚原因,可能是在某个环节更新了一些版本。文章来源地址https://www.toymoban.com/news/detail-449310.html

到了这里,关于解决OpenCV与Numpy版本不匹配问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • numpy与python版本不匹配-ImportError: Unable to import required dependencies: numpy

    你在运行python代码的时候,是否遇到过下面这种错误 如上信息所示,我的python版本是3.7,Numpy版本是1.21.6,他们的版本不匹配,导致运行报错。 1.通过安装对应的版本号,python3.7对应的是numpy1.19.5,直接按照对应版本即可。 如果你使用的pip,只需要执行 如果你使用的是conda,需

    2024年02月07日
    浏览(26)
  • Centos安装Nvidia驱动解决内核版本不匹配问题

    写程序三分钟,配环境三小时,尤其是在一台全新机器/重装系统后。。。 已经解决的: 禁用nouveau驱动并重启电脑(参考这篇博客) 缺少cc,手动yum安装gcc和gcc-c++ ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for y

    2024年02月05日
    浏览(32)
  • npm与node版本不匹配问题解决思路(一百五十八)

    1.报错 npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: ‘electron-packager@17.1.1’, npm WARN EBADENGINE required: { node: ‘= 14.17.5’ }, npm WARN EBADENGINE current: { node: ‘v12.22.9’, npm: ‘8.5.1’ } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: ‘mdui@1.0.2’, npm WARN E

    2024年02月09日
    浏览(33)
  • 在Anaconda下安装并使用Pytorch,pillow,numpy等库及Python版本的匹配

    目录 1.在Anaconda Prompt创建新环境 2.去pytorch官网上查找环境中Python所对应的pytorch版本并下载相关包 查询电脑独立NVIDIA显卡所适配的CUDA版本 CUDA版本查询 3.部分库版本的安装与修改  本人在Anaconda下创建的新环境为 python 3.7.0 pytorch 1.8.0 pillow 9.5.0 numpy 1.21.5 能够正常运行 如果我这

    2024年02月15日
    浏览(24)
  • Pytorch、CUDA和cuDNN的安装图文详解win11(解决版本匹配问题)

    本文已收录于Pytorch系列专栏: Pytorch入门与实践 专栏旨在详解Pytorch,精炼地总结重点,面向入门学习者,掌握Pytorch框架,为数据分析,机器学习及深度学习的代码能力打下坚实的基础。免费订阅,持续更新。 可能出现的问题: CUDA和cuDNN版本不匹配 CUDA和Pytorch版本不匹配

    2023年04月18日
    浏览(40)
  • 解决npm安装依赖失败,node和node-sass版本不匹配的问题

    一. 问题描述 用npm安装依赖报错: 二. 问题解决 这个问题困扰了大半天,网上答案五花八门,不过对我来说,那些方法都没有效果,记录一下我解决这个错误的步骤,如下: 删除下载好的node_modules 删除package-lock.json文件 清除npm缓存 npm cache clean --force 或者是 npm cache verify np

    2024年02月11日
    浏览(43)
  • chrome浏览器版本和Chromedriver不匹配问题解决办法selenium.common.exceptions.SessionNotCreatedException

    执行selenium抓取的时候,报下面错误: 这是因为浏览器的版本和Chromedriver的版本不匹配,Chrome浏览器如果没有关闭自动更新,会一直出现这个问题,比较麻烦,建议关闭Chrome浏览器自动更新,参照另外一篇文章:Chrome浏览器关闭自动更新 谷歌镜像版本下载链接:https://regist

    2024年02月16日
    浏览(36)
  • 【Python版本与Opencv版本匹配】

    #. 在安装opencv时,经常遇到,python版本与opencv版本无法匹配。 当安装了opencv以后, 发现依赖项numpy又无法匹配。  #. 本章节首先记录python and opencv match. 根据上面的图片, 可知道opencv python-3.3.1.11-cp34, python3.4对应opencv3.3.1.11  pip install

    2024年04月27日
    浏览(31)
  • ROS自带OpenCV和本地OpenCV版本冲突问题解决

    首先catkin_make编译功能包没有任何问题,100%生成目标文件,但是报了警告:库文件libmyslam.so需要的是libopencv_core.so.3.4,可能会与libopencv_core.so.3.2冲突。根据工程经验,警告不用管,直接运行完事。

    2024年02月12日
    浏览(45)
  • Selenium自动化chrome驱动版本匹配但是调用浏览器失败:Only local connections are allowed. 问题解决

    第一次发现这种情况,驱动版本完全对的上,但是调用 chrome 就提示 Only local connections are allowed. 然后浏览器调用失败报错。 解决方法: 调用 chrome 驱动的时候加个参数 --whitelisted-ips=\\\"\\\" ,值为空就是把所有调入来源都加入白名单。 ips 的全称是 intrusion prevention system ,解释为入

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包