Python AttributeError: ‘ module’对象没有属性‘ Serial’

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

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

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

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

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

奇怪的是,几小时前还能用。

有什么问题吗?我试着修复这个问题已经有一段时间了,重新安装 pySerial,重写代码,重复检查串口等等。

528417 次浏览

您导入的是模块,而不是类,因此,您必须写:

from serial import Serial

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

我在为那些和我犯同样错误的人提供解决方案。

在大多数情况下: 将项目文件重命名为‘ seral.py’,如果存在,则删除 seral.pyc,然后可以执行简单的‘ import Series’操作,而不会出现属性错误。

当 Python 文件名为‘ something. py’时,导入‘ something’时会出现问题。

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

用这里描述的方法列出“ Serial”的所有子模块(或者你遇到麻烦的任何包) : 列出 Python 包中的所有模块

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

看起来像只虫子。

如果具有循环依赖关系,也可能发生此错误。检查您的进口,并确保您没有任何周期。

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

如果前面提到的解决方案不适合您,请再次检查您是否安装了正确的库。

您已经安装了 不正确的软件包命名为’< em > Series ’

  • 对 python 2.x 或 pip3 uninstall serial运行 pip uninstall serial 对于 python3.x
  • 然后安装 环境保护署,如果还没有安装 对 python 2.x 运行 pip install pyserial,对 python 3.x 运行 pip3 install pyserial

是的,这个话题是有点老,但我想分享的解决方案,为我工作的那些谁可能需要它无论如何

正如阿里所说,尝试使用以下终端定位您的程序:

 sudo python3
import serial

print(serial.__file__) —— > 收到

CTRL+D #(to get out of python)

sudo python3ーーーーーーーーーーーーーーーーーー/__init__.py

激活 __init__.py会对你的程序说“ OK,我将使用 python3中的 Serial”。我的问题是我的 python3程序使用的是 python2.7中的 Serial

其他解决方案: 删除其他 Python 版本

曹大人

资料来源: Https://raspberrypi.stackexchange.com/questions/74742/python-serial-serial-module-not-found-error/85930#85930

努力尝试