【问题标题】:How to solve AttributeError: module 'serial' has no attribute 'Serial' in pyserial?如何解决 AttributeError:模块 'serial' 在 pyserial 中没有属性 'Serial'?
【发布时间】:2019-11-15 02:39:18
【问题描述】:

我有一个带有 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 属性,所以我认为它基本上没有安装,我不知道为什么。 我尝试挖掘互联网,但仍然找不到解决方案。

【问题讨论】:

  • 我已经浏览了文档,但是给出这个错误的可能性很小;你把你的脚本叫做serial.py吗?如果是这样,您需要重命名它
  • 不,我没有调用我的脚本serial.py。我也不应该使用 serial 而不是 pyserial,但我读到的关于这个错误的所有内容都表明我使用了错误的包。我不明白为什么我多次卸载串行。我只是试图再次卸载它,我得到“跳过序列,因为它没有安装”。我还尝试在朋友的电脑上运行脚本,但我遇到了同样的错误......即使也没有安装串行。
  • 一如既往,我认为问题出在 Windows 上,但我现在不能使用 Linux。稍后我会尝试在 Linux 中运行我的脚本,我会告诉你的。
  • 我通过将 IDE 更改为 pyCharm 解决了这个问题。我仍然不知道为什么它不适用于 Anaconda,但至少现在我有一个工作脚本。谢谢你们:)

标签: python pyserial


【解决方案1】:

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

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

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

from serial import Serial

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

【讨论】:

    猜你喜欢
    • 2018-04-21
    • 2017-05-03
    • 2022-08-12
    • 2019-06-09
    • 1970-01-01
    • 2021-10-15
    • 2020-09-07
    • 2021-12-27
    相关资源
    最近更新 更多