Python AttributeError: 'module' 对象没有属性 'Serial'

新手上路,请多包涵

我正在尝试在运行 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,重写我的代码,仔细检查串行端口等。

原文由 hao_maike 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

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

 from serial import Serial

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

原文由 VGO 发布,翻译遵循 CC BY-SA 4.0 许可协议

我正在为与我犯同样错误的人添加此解决方案。

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

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

原文由 sql 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题