当前位置:   article > 正文

python打包pyserial库导致打开串口出现异常提示:module ‘serial‘ has no attribute ‘Serial‘_python serial has no serial

python serial has no serial

项目场景:

项目相关背景:

项目场景:示例:利用python编写串口调试助手上位机,与下位机进行数据传输。


问题描述

项目中遇到的问题:

程序如果不通过pyinstaller打包就能够正常运行,通过pyinstall打包成.exe运行进行打开串口操作后会抛出异常:module ‘serial’ has no attribute ‘Serial’

出现的问题

原因分析:

问题的分析:

1.在网上查找资料后发现python3以后对串口的操作只需要pyserial模块而不需要serial模块,而pyserial模块的导入使用的是import serial,会不会是打包的时候自动无法区分?


解决方案:

具体解决方案:为了避免混淆我重新创建了个带虚拟机的工程,然后把代码重新赋值过去,在pycharm的控制台安装需要的包。

以下是具体步骤:
1.新建带虚拟机的工程
1
2.把代码复制过去,会发下有许多模块没有导入。ok,现在打开pycharm的终端。
2
3.安装相应的模块,针对这里只用安装pyserail即可。

#在终端中输入
pip install pyserial
  • 1
  • 2

4.确保程序能够正常运行后,使用如下命令进行打包

pyinstaller -F --hidden-import=serial --paths=D:\pythonProject5\.venv\Lib\site-packages main.py
  • 1

上述命令中的== --paths== 选项用于指定搜索模块的路径。这应该确保 PyInstaller 可以找到 serial 模块,因为我自己也找了下serial.Serial这个给函数,发现他是在serial模块的serialjava中,如图
3
5.打包完成后就能正常运行了
4
总之有如下需要注意的点
1.只需要安装pyserial模块,导入的时候还是import serial。不要安装serial模块
2.确保程序能够正常运行。
3.打包的时候使用我提供的命令,site-packages文件夹的路径就需要各位自己去找了。
另外如果项目比较大,不想重新创建个空项目慢慢去弄,可以试试先把pyserial和serial卸载了,再重新安装pyserial,以下是用到的一些命令,运行过程中需要你手动输入y确认卸载。

pip uninstall serial#卸载serial
pip uninstall pyserial#卸载pyserial
pip install pyserial#重新安装pyserial
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号