我的剧本名为 serial.py 尝试导入pySerial:
serial.py
import serial ser = serial.Serial('/dev/ttyAMA0', 9600) ser.write("hello world!")
由于某种原因,它拒绝建立与此错误的串行连接:
AttributeError: 'module' object has no attribute 'Serial'
奇怪的是,它在几个小时前就开始工作了。
提前谢谢!
是的,这个话题有点老了,但是我想和大家分享一个对我有用的解决方案
正如Ali所说,尝试使用以下终端定位程序:
sudo python3 import serial
print(serial.__file__) -->复制
print(serial.__file__)
CTRL+D #(to get out of python)
sudo python3 -->粘贴 /__init__.py
sudo python3
/__init__.py
__init__.py 会对你的程序说“好的,我要用python3的Serial”。我的问题是python3程序使用的是来自python 2.7的Serial
__init__.py
曹
资料来源: https://raspberrypi.stackexchange.com/questions/74742/python-serial-serial-module-not-found-error/85930#85930
战车
如果具有循环依赖项,也可能发生此错误。检查导入并确保没有任何周期。
这个问题是因为你的proyect被命名为serial.py,而导入的库也被命名为serial,更改名称就行了。
如果你像我一样无助,试试这个:
用下面描述的方法列出“串行”的所有子模块(或有问题的任何包): List all the modules that are part of a python package
就我而言,问题一个接一个地解决了。
…在我看来像只虫子。。。
您已经安装了 连载
pip uninstall serial
pip3 uninstall serial
pip install pyserial
pip3 install pyserial
我不小心安装了“serial”( sudo python -m pip install serial )而不是“pySerial”( sudo python -m pip install pyserial
sudo python -m pip install serial
sudo python -m pip install pyserial
如果前面提到的解决方案不适用于您,请仔细检查是否安装了正确的库。
在大多数情况下:如果存在,则重命名项目文件“St.Py”和删除Serial.Pyc,然后可以在没有属性错误的情况下执行简单的“导入序列”。
您正在导入模块,而不是类。所以,你必须写:
from serial import Serial
serial 模块正确: pip install pyserial .
serial