Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion ‘GTK_IS_WIDGET (widget)‘ faile解决办法

问题描述:
在python3中使用import cv2后使用cv2.imshow() 报错(python3:6706): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion ‘GTK_IS_WIDGET (widget)’ failed。

系统配置:
ubuntu16.04 + opencv3.4.2 + python3.5

解决过程:
1、网上参考解决方法
https://blog.csdn.net/Chandler_Bing_/article/details/107244426
https://stackoverflow.com/questions/35351024/pyqt5-gtk-critical-ia-gtk-widget-style-get-assertion-gtk-is-widget-widg
等等。。。
然而均未解决我的问题。

2、具体解决办法
分析:
import cv2 能用说明系统可以导入opencv。通过cv2.__version__打印发现python3中导入的cv2是4.3.2,而不是自己安装的3.4.2,通过pkg-config --modversion opencv,输出opencv 版本是3.4.2 。因此是python3中与本机opencv版本不对问题,然而我从未安装opencv-4.3.2。通过pip3 list 查看pip3 安装的软件,发现opecv-python是4.3.2版本,所以需要安装与opencv3.4.2相对应的opencv-python.

解决:
1、pkg-config --modversion opencv 查询opencv版本号,例如:‘3.4.2’
2、在https://pypi.org/project/opencv-python/#history查询对应的版本号并安装, 例如:pip3 install opencv-python==3.4.2.17
3、最后验证imshow()不再报错。

总结:
由于在安装完成opencv后,通过pip3 install opencv-python 是安装的当前最新版本,与自己安装的opencv不匹配,导致报错,所以需要根据自己安装的opencv版本选择对应的opencv-python版本。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值