You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu运行Python脚本报ImportError No module named pyserial错误

问题根因

核心原因是pyserial的PyPI发行包名和实际可导入的模块名不一致,属于Python生态的常规情况,你的安装操作没有问题。

  • 你通过pip、apt安装时填写的pyserial是这个包在软件源里的发行名,但包安装完成后,解释器能识别的导入模块名是serial,不存在名为pyserial的可导入模块,因此无论安装哪个版本,执行import pyserial都会触发找不到模块的报错。
  • 你在pyserial-3.5.dist-info目录下看不到.py文件是正常现象:这个目录仅存储包的版本、依赖、安装记录等元数据,实际的功能代码存放在和它同级的serial目录中,回到site-packages根目录即可找到对应源码文件,不存在安装丢文件的问题。
  • 你在Python2.7、3.8交互环境中执行import serial无报错,已经直接证明两个环境下的pyserial都安装成功,问题出在脚本本身的错误导入写法,和安装过程、包版本无关。
解决步骤
  1. 修正脚本中的错误导入语句
    把脚本里所有import pyserial、import pyserial as serial、from pyserial import xxx这类错误写法全部替换为正确的模块导入:
    import serial
    
    如果需要引入模块下的特定类/方法,比如串口实例类,写法为from serial import Serial,严格基于serial作为模块名引用即可。
  2. 确认脚本运行时匹配正确的Python2解释器
    新部署的Ubuntu默认存在多版本Python共存的情况,为避免调用到未装对应包的解释器,运行脚本前先执行命令确认Python2路径:
    which python2
    
    拿到路径后用全路径调用脚本,示例:
    /usr/bin/python2 your_target_script.py
    
  3. 安装有效性校验(可选)
    进入Python2交互终端执行以下代码,确认包功能正常:
    import serial
    print(serial.__version__)
    
    正常输出版本号(如3.5)即代表环境配置完全正常,运行修正导入后的脚本即可。
补充说明

Python生态中大量包都存在发行名和导入名不一致的情况,比如发行名pillow对应导入名PIL、发行名python-dateutil对应导入名dateutil,遇到导入报错时先在对应Python环境的交互终端测试导入,不要想当然按照发行名写导入语句,也不要盲目重装包浪费时间。


内容的提问来源于stack exchange,提问作者jfwork

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:00:54