Labelme启动崩溃或报错qtpy.QtBindingsNotFoundError: No Qt bindings could be found的原因

文章讲述了作者在Docker容器内的conda环境中遇到Labelme启动错误,经过排查发现是C++版Qt5与PyQt5库的冲突以及numpy版本不兼容的问题,最终通过调整LD_LIBRARY_PATH和降级numpy版本解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照这里说明在docker容器里conda环境下安装了labelme GitHub - wkentaro/labelme: Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).后启动Labelme 直接segment fault coredump,按网上别人说的卸掉qtpy和pyqt5和Labelme后再重装:

conda install pyqt
pip install pyqt5
pip install labelme

再启动labelme,报新的错误:

Traceback (most recent call last):
  File "__main__.py", line 9, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 385, in exec_module
  File "qtpy/__init__.py", line 259, in <module>
qtpy.QtBindingsNotFoundError: No Qt bindings could be found
[94996] Failed to execute script '__main__' due to unhandled exception!

按着网上别人说的一些办法反复实验卸载和安装一些包,还是没能解决,非常困惑,以前安装过程和启动非常顺利,为何这docker容器内里就不行呢?仔细看了一下环境,发现里面安装了C++版的Qt5,推断极有可能是C++版Qt5和PyQt5的某些文件例如so库有冲突或者加载顺序先后造成的,于是试着去掉指定了加载C++版Qt5库的LD_LIBRARY_PATH环境变量设置:

unset LD_LIBRARY_PATH

再启动labelme,果然不报Qt bindings错误了,不过报了关于numpy的错误:

AttributeError: module 'numpy' has no attribute 'typeDict'

这应该是环境里已安装的numpy版本2.24不符合Labelme的要求,卸载掉,安装之前别的环境下Labelme可以跑的numpy 1.18.5,然后Labelme就可以正常启动了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值