我正在尝试使用 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
可以解决您的问题?