一、报错内容:
Traceback (most recent call last):
File "E:\labelme\widgets\canvas.py", line 494, in paintEvent
p.translate(self.offsetToCenter())
^^^^^^^^^^^^^^^^^^^^^
File "E:\labelme\widgets\canvas.py", line 531, in offsetToCenter
return QtCore.QPoint(x, y)
^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
QPoint(): too many arguments
QPoint(xpos: int, ypos: int): argument 1 has unexpected type 'float'
QPoint(a0: QPoint): argument 1 has unexpected type 'float'
Traceback (most recent call last):
File "E:\labelme\widgets\canvas.py", line 494, in paintEvent
p.translate(self.offsetToCenter())
^^^^^^^^^^^^^^^^^^^^^
File "E:\labelme\widgets\canvas.py", line 531, in offsetToCenter
return QtCore.QPoint(x, y)
^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
QPoint(): too many arguments
QPoint(xpos: int, ypos: int): argument 1 has unexpected type 'float'
QPoint(a0: QPoint): argument 1 has unexpected type 'float'
二、报错分析:该错误表明QPoint函数期望接受整数参数,但是实际接收到的却是浮点数。
三、解决方案:
根据分析,打开报错的文件canvas.py文件(顺着报错信息去找),找到定义的offsetToCenter函数:
将最后的返回值return那行改为:
return QtCore.QPoint(int(x), int(y))
就顺利打开了:
!!!注意!!!
如果在标注数据的时候出现类似的报错:“期望接受整数参数,但是实际接收到的却是浮点数”,那么需要考虑环境的问题。如果python环境是3.11(我原本的环境),那么会一直报错。
因此,需要重新建一个虚拟环境(python3.8以下的吧,我的是python3.7,标注时候没啥问题了),然后再重新装labelme。如果你是conda环境,直接python=3.7就好了,不用自己安装别的版本的python了。