首页 > 解决方案 > 如何解决 AttributeError:模块 'serial' 在 pyserial 中没有属性 'Serial'?

问题描述

我有一个带有 Python 3.7.4 的 Windows 10,我使用 Jupyter Notebook。我正在尝试使用 pySerial 通过 Serial 属性连接到我的 Arduino。我尝试简单地通过 pip install pyserial 安装 pySerial ,最终我也尝试了 conda install -c conda-forge pyserial ,但是当我尝试运行我的代码时:

 import serial
 ser = serial.Serial('COM4', 9600)

我收到一条错误消息,例如:

AttributeError                            Traceback (most recent call last)
<ipython-input-7-413d0d9dabe7> in <module>
      2 import serial
      3 import time
----> 4 ser = serial.Serial('COM4', 9600)
      5 
      6 # Your Account Sid and Auth Token from twilio.com/console

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

另外,我试过

import serial
serial.__file__

我得到了 'C:\Users\lippe\Anaconda3\lib\site-packages\serial\__init__.py' 作为输出。

我也试过 dir(serial) 并且在输出中看不到 Serial 属性,所以我认为它基本上没有安装,我不知道为什么。我尝试挖掘互联网,但我仍然找不到解决方案。

标签: pythonpyserial

解决方案


确保您正在导入正确的序列号。使用 pip 安装 pyserial 后,您可以使用该__file__属性来检查它是否是我所期望的:

>>> import serial
>>> serial.__file__
'/usr/local/lib/python3.7/site-packages/serial/__init__.py'

其他答案表明直接导入类可能有效

from serial import Serial

但是我不确定如果您要导入在 pypi 上发布的最新版本,为什么这会很重要。


推荐阅读