AttributeError:模块“serial”没有属性“to_bytes”

AttributeError:模块“serial”没有属性“to_bytes”

我正在尝试使用 python 程序对 Arduino Uno 进行编程。我的Python版本是Python 3.8。我成功安装了 pyfirmata2。但是当我尝试从命令行导入 pyfirmata2 时,出现以下错误。

>>> import pyfirmata2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python38\lib\site-packages\pyfirmata2\__init__.py", line 2, in <module>
    from .pyfirmata2 import *  # NOQA
  File "C:\Python38\lib\site-packages\pyfirmata2\pyfirmata2.py", line 7, in <module>
    import serial.tools.list_ports
  File "C:\Python38\lib\site-packages\serial\tools\list_ports.py", line 27, in <module>
    from serial.tools.list_ports_windows import *
  File "C:\Python38\lib\site-packages\serial\tools\list_ports_windows.py", line 127, in <module>
    Ports = serial.to_bytes([80, 111, 114, 116, 115]) # "Ports"
AttributeError: module 'serial' has no attribute 'to_bytes'

答案1

该方法to_bytes()可用于int类型。

在您正在运行的代码中,它似乎serial不是一个int类型,而是一个module没有该to_bytes()方法的类型。

您没有说明pyserial您正在运行哪个版本,但我找不到该Ports = serial.to_bytes([80, 111, 114, 116, 115]) # "Ports"该文件的当前源代码来自pyserial。我确实发现这条线在2016年被删除了有了这个提交,那么也许更新版本pyserial可以解决您的问题?

相关内容