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,导入的库也是命名序列,更改名称和所有。