Python AttributeError:'模块'对象没有属性'串行'

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

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

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

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

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

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

可能是什么问题呢? 我试图解决这个问题,再次安装pySerial,重写我的代码,再次检查串口等。

提前致谢!

您正在导入模块,而不是课程。 所以,你必须写: from serial import serial

我为那些和我一样犯了同样错误的人添加了这个解决scheme。

在大多数情况下:重命名你的项目文件'serial.py'并删除serial.pyc(如果存在),那么你可以做简单的'导入串行'没有属性错误。

当你的python文件名是'something.py'时,导入'something'就会出现问题。

我不小心安装了'串行'( sudo python -m pip install serial )而不是'pySerial'( sudo python -m pip install pyserial ),导致了同样的错误。

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

如果你像我一样无助,试试这个:

列出“串行”(或任何你遇到麻烦的包)的所有子模块与这里描述的方法: 列出所有模块是一个Python包的一部分

就我而言,这个问题一个接一个地解决了。

…看起来像一个bug给我…

如果你有循环依赖,这个错误也会发生。 检查你的import,并确保你没有任何周期。

这个问题是你的proyect命名为serial.py,导入的库也是命名序列,更改名称和所有。