我正在使用 pyserial 打开 python 连接:
self.fpga = serial.Serial(self.fpgaport, 115200, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, self.fpgapollinterval, False, False, None, False, None)
这与此处找到的 pyserial 文档相匹配:
__init__(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, writeTimeout=None, dsrdtr=False, interCharTimeout=None)
但是,当我运行脚本时,我收到此错误:
line 391, in run
self.fpga = serial.Serial(self.fpgaport, 115200, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, self.fpgapollinterval, False, False, None, False, None)
TypeError: __init__() takes at most 11 arguments (12 given)
当我取出最后一个参数(最后一个None
)时,错误就消失了。
我还打印了所有变量名,以防一个超过一维。也不是这样。
我正在使用 python 2.6.6,文档适用于 pyserial 2.6。我一直在努力找出如何找到我正在使用的串行版本。
为什么当我只提供 11 个参数时,python 声称我提供了 12 个参数?我一定在这里遗漏了一些东西。
编辑:
如何找出我安装了哪个串行版本?我正在运行的这段代码可能是为另一个版本的 python(和串行的)编写的。我需要找出我想要的串行版本作为参数。