Python AttributeError: module object has no attribute Serial

2024-05-17 00:31:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用运行Debian的Raspberry Pi上的Python 2.6访问串行端口。 名为serial.py的脚本尝试导入pySerial:

import serial
ser = serial.Serial('/dev/ttyAMA0', 9600)
ser.write("hello world!")

由于某种原因,它拒绝建立与此错误的串行连接:

AttributeError: 'module' object has no attribute 'Serial'

当我试图在交互式Python解释器中键入相同的代码时,它仍然不起作用。

奇怪的是,它在几个小时前就开始工作了。

有什么问题吗?我已经尝试修复了一段时间,再次安装pySerial,重写代码,重新检查串行端口,等等

提前谢谢!


Tags: 端口代码pydevimport脚本serialpi
3条回答

我在为那些和我犯同样错误的人添加这个解决方案。

在大多数情况下:重命名项目文件“serial.py”并删除serial.pyc(如果存在),则可以执行简单的“导入serial”,而不出现属性错误。

当python文件名为“something.py”时,导入“something”时会出现问题。

我意外地安装了'serial'(sudo python -m pip install serial)而不是'pySerial'(sudo python -m pip install pyserial),这导致了相同的错误。

如果前面提到的解决方案不适用于您,请仔细检查是否安装了正确的库。

您正在导入模块,而不是类。所以,你必须写:

from serial import Serial

您需要正确安装serial模块:pip install pyserial

相关问题 更多 >