Python 2.7中import serial报错及Serial类导入失败问题咨询
嘿,我来帮你解决Python 2.7环境下的这两个serial导入问题,这些都是我在Stack Overflow上经常遇到的场景,给你梳理清楚:
import serial时直接报错 下面是最常见的原因和对应的解决办法:
原因1:未安装正确的库
Python 2.7的标准库中没有serial模块,你需要安装专门的pyserial包(注意不是叫serial,很多新手会搞混包名)。为了适配Python 2.7,建议安装兼容性最好的2.7版本:
在终端运行命令:pip install pyserial==2.7原因2:本地存在同名文件
如果你当前工作目录里有自己写的serial.py脚本,Python会优先导入这个本地文件,而不是你安装的pyserial库,直接导致报错。
解决办法:把你的本地脚本改名(比如改成my_serial_tool.py),同时删除目录里自动生成的serial.pyc文件(如果存在的话)。原因3:Python环境混乱
如果你有多个Python环境,可能pip把库装到了其他环境,而你运行的是另一个环境的Python。这时候可以用Python的绝对路径来指定安装和运行:# 替换成你Python 2.7的实际路径,比如/usr/bin/python2.7 /usr/bin/python2.7 -m pip install pyserial==2.7
import serial成功,但from serial import Serial报错 这种情况说明你导入的serial模块不是我们需要的pyserial,或者安装有问题,常见解决思路:
原因1:装错了无关的
serial包
有些第三方包也叫serial,但它们并没有Serial类。先卸载错装的包,再安装正确的pyserial:pip uninstall serial pip install pyserial==2.7原因2:导入的是错误的
serial模块
先验证你导入的serial到底来自哪里:在Python交互环境里运行:import serial print(serial.__file__)如果输出的路径不是
site-packages/serial/__init__.py(也就是你安装pyserial的目录),说明你导入了其他同名模块。这时候需要把那个无关的serial模块移走或者改名。原因3:
pyserial安装不完整
安装过程中可能因为缓存或网络问题导致部分文件缺失,比如Serial类所在的文件没安装成功。可以彻底卸载后重新安装:pip uninstall -y pyserial # 手动删除site-packages里残留的serial文件夹(如果还有) pip install pyserial==2.7 --no-cache-dir
内容的提问来源于stack exchange,提问作者Amit Sinha

