Python 获取pyserial错误“;类型错误:'&燃气轮机';在';字节';和';int';

Python 获取pyserial错误“;类型错误:'&燃气轮机';在';字节';和';int';,python,pyserial,python-3.7,Python,Pyserial,Python 3.7,我正在尝试从设备读取串行输出,并得到上述错误 在以下行中添加int(),并得到相同的错误: rtn=self.ser.read(int(self.numbytes)) 我从我的打印声明中得到“等待中的字节数:74”,有什么想法吗 以下是实际错误: 回溯(最近一次呼叫最后一次): 文件“senscom\SensComRes.py”,第95行,以doSerial格式 文件“site packages\serial\serialwin32.py”,第268行,已读 TypeError:“bytes”和

我正在尝试从设备读取串行输出,并得到上述错误

在以下行中添加int(),并得到相同的错误: rtn=self.ser.read(int(self.numbytes))

我从我的打印声明中得到“等待中的字节数:74”,有什么想法吗

以下是实际错误:

回溯(最近一次呼叫最后一次): 文件“senscom\SensComRes.py”,第95行,以doSerial格式 文件“site packages\serial\serialwin32.py”,第268行,已读
TypeError:“bytes”和“int”的实例之间不支持“>”

您确定错误不在这一行
self.Response\u textEdit.setText(self.ser.read(rtn))
?您提供的是
serial.read
,其大小参数为
rtn
。变量
rtn
是上一个
serial.read
的输出,它将是一个字节对象,并将引发您得到的错误。

您能提供完整的堆栈跟踪吗?已弃用。请在设置后立即打印
self.numbytes
。添加
打印(repr(self.numbytes))
并检查它是否符合您的期望。(如果您仍然需要帮助,请与我们共享。)同时尝试
self.ser.in_waiting
(无括号)而不是
in waiting
,假设您正在运行pyserial 3.0或更高版本。您也可以使用
if self.numbytes
而不是将其与0进行比较,或者只使用rtn的长度。但是,用完整的堆栈跟踪来回答这个问题会更容易。您暗示错误在
rtn=行,但该行上没有
运算符,因此它很可能位于pyserial中的某个位置,但如果没有堆栈跟踪,我们无法判断。也许我应该使用readline来代替?
def doSerial(self, cmd=''):
    self.ser = serial.Serial(self.port,self.baud)
    time.sleep(1)
    if self.ser.isOpen():
        if self.sel == 5:#RSOIS
            self.StatusButton.setStyleSheet(_fromUtf8("background-color: rgb(0, 255, 0);"))
            self.statusLabel.setText('connected')
            time.sleep(2)
            while True:
                self.numbytes = self.ser.inWaiting()#size of input buffer
                print ('bytes in waiting: '+str(self.numbytes))
                rtn = self.ser.read(int(self.numbytes))
                if self.numbytes > 0:
                    self.Response_textEdit.setText(self.ser.read(rtn))
                else:
                    self.Response_textEdit.setText('No serial ouput/n')
                    break
    else:
        print ('serial not open')