关于labelimg安装后在标注过程中闪退和死机的问题处理

labelimg安装后在标注过程中闪退和死机,并在控制台出现如下错误提示:

raceback (most recent call last): File "D:\dev\python3.12.0\Lib\site-packages\libs\canvas.py", line 530, in paintEvent p.drawLine(self.prev_point.x(), 0, self.prev_point.x(), self.pixmap.height()) 运行labelimg时候出现如下错误:TypeError: arguments did not match any overloaded call: drawLine(self, l: QLineF): argument 1 has unexpected type 'float' drawLine(self, line: QLine): argument 1 has unexpected type 'float' drawLine(self, x1: int, y1: int, x2: int, y2: int): argument 1 has unexpected type 'float' drawLine(self, p1: QPoint, p2: QPoint): argument 1 has unexpected type 'float' drawLine(self, p1: UnionQPointF, QPoint, p2: UnionQPointF, QPoint): argument 1 has unexpected type 'float'

经过查找资料发现是labelimg版本不能PQ5版本兼容出现的问题,具体的说是使用的 Python 版本较高(当前是 Python 3.12),而 LabelImg 这个工具在较新的 PyQt5 库中,绘图函数不再支持传入浮点数(float),必须强制转换为整数(int)。

具体处理的方法如下:

1. 修改 canvas.py 文件(解决核心报错)

根据报错提示,找到 D:\dev\python3.12.0\Lib\site-packages\libs\canvas.py 这个文件,用文本编辑器(如记事本、VS Code等)打开它。

找到第 530 行左右的代码:

p.drawLine(self.prev_point.x(), 0, self.prev_point.x(), self.pixmap.height())

将其修改为(在坐标数值外包裹 int() 进行强制转换):

p.drawLine(int(self.prev_point.x()), 0, int(self.prev_point.x()), int(self.pixmap.height()))

建议顺手修复同文件下的其他潜在报错 :

为了防止后续出现类似的闪退,建议同时检查并修改该文件中第 526 行和第 531 行的代码:

  • 第 526 行修改为:
    p.drawRect(int(left_top.x()), int(left_top.y()), int(rect_width), int(rect_height))
  • 第 531 行修改为:
    p.drawLine(0, int(self.prev_point.y()), int(self.pixmap.width()), int(self.prev_point.y()))

2. 修改 labelImg.py 文件(预防滚动闪退)

在高版本 Python 中,滚动鼠标滚轮时也容易触发类似的 float 类型报错。建议提前修复:

找到 D:\dev\python3.12.0\Lib\site-packages\labelImg\labelImg.py 这个文件并打开。

找到第 965 行左右(通常在 scroll_request 函数内)的代码:

  • bar.setValue(bar.value() + bar.singleStep() * units)

  • 将其修改为:

  • bar.setValue(int(bar.value() + bar.singleStep() * units))

  • 经过以上修改有效的解决上述问题。

相关推荐
呆呆虫1213 分钟前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
wflynn16 分钟前
GitHub 今日推荐|Edge0:让大号 MoE 模型在一台 Mac 上流式跑起来
python·开源·github
2601_9679801133 分钟前
python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)
python·scapy·pcap·协议分析·网络数据包
心疼你的一切40 分钟前
Python自动发邮件实战定时发报表
大数据·开发语言·python
Wang's Blog2 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
中科三方2 小时前
IPv6检测常见问题:AAAA记录检测不通过是什么原因?
开发语言·php
卡提西亚2 小时前
FastAPI基础入门
python·fastapi
fanruitian3 小时前
python 机器学习 ML LinearRegression KNN KMeans
python·机器学习·kmeans
鱼宵3 小时前
取集合第一个元素,Java 为什么要写三种写法?
java·windows·python·java21
卷无止境3 小时前
给AI装上一双眼睛:快速构建代码验证器的思路与落地方案
后端·python