Pycharm使用pyserial时出现AttributeError: module 'serial' has no attribute 'Serial'

        在新的笔记本(没有和python有关的任何软件)上安装好python,在cmd窗口中使用pip install pyserial命令安装完成pyserial的包,打开python自带的IDLE,运行一下代码:

import serial  # 导入pyserial
com = serial.Serial('com3', 115200)  # 实例化串口,com3,波特率115200
print("com3")

能够正确打印出com3的串口信息,证明pyserial的包安装成功并且能够正常使用

        毕竟python的IDLE使用起来不怎么方便,还是需要将程序移植到Pcharm中,然后神奇的问题出现了,直接在第一句话就报错,找不到module “serial”,根据Pycharm的提示,点击了下载安装serial的包,经过一会,安装成功。

        到此,本以为问题已经解决,兴高采烈地debug了一下程序,然后Pycharm就丢出了下面的问题,折磨了我好久:

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

        网上也有很多遇到这个问题的,解决方法主要分为两种:1.重装pyserial; 2.更改.py脚本文件名。试了好多还是不成功,经过仔细思考,我这个问题应该不是pyserial没有安装成功,毕竟IDLE已经可以成功运行,而在Pycharm中无法运行,这应该是Pycharm哪里配置不对。顺着这个思路,开始去研究Pycharm如何调用python的包,发现Pycharm比较特别,它并不是直接调用python安装目录下Lib文件夹中的包,而是调用在Pycharm工程文件夹中venv/Lib中的包,尽管前面我已经使用Pycharm下载了serial的包在这个文件夹下了,但是这个包并不是pyserial,所以也就没有Serial模块,因此才会出现上面这个令人头疼的AttributeError。

        最后在Pycharm-->Setting-->Project Interpreter 包管理界面中选择pyserial进行安装,问题顺利解决!

        设想一下,如果把python安装目录下Lib中的pyserial文件夹整个拷贝到Pycharm的工程文件夹venv/Lib中,应该也会解决问题。

        总结:导致本问题的原因初步理解为,我要使用的是pyserial的包里面的serial.Serial(),但是由于Pycharm只安装了serial的包,所以索引是找不到serial.Serial(),后续需要深入研究的问题:
        1.pycharm的包的管理机制具体如何,是否有方法直接使用本地已经安装好的包,还是只依赖于Setting中安装的包
        2.serial又是什么包,和pyserial有什么区别

  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值