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、网上参考解决
问题描述:
在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版本。
更多推荐
所有评论(0)