树莓派3通过Gmail发邮件报错:email.mime无MIMEMultipart属性求助
解决Raspberry Pi上
email.mime has no attribute 'MIMEMultipart'的问题 嘿,我之前帮朋友排查过几乎一模一样的问题,你这情况大概率是两个原因:导入语句写错了,或者不小心安装了第三方的email包覆盖了Python标准库,咱们一步步来解决:
第一步:卸载第三方email包(关键!)
你提到用pip reinstall重新安装了email包,这其实是踩了坑——email是Python的标准库,根本不需要用pip安装!第三方的email包会直接覆盖系统自带的标准库模块,导致结构错乱,出现找不到MIMEMultipart的错误。
赶紧在Raspberry Pi的终端里执行:
# 如果用的是Python3,用pip3 pip3 uninstall email # 如果是Python2(不建议,已经停止支持),用pip pip uninstall email
执行时确认卸载,别犹豫~
第二步:修正你的导入语句
Python3里的email模块是模块化设计的,MIMEMultipart并不直接在email.mime下面,而是在email.mime.multipart子模块里。你之前的导入方式可能是错的,正确的写法应该是:
# 正确导入MIMEMultipart和MIMEText from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText
而不是像下面这样错误的写法:
# 错误!不要这么写 import email.mime msg = email.mime.MIMEMultipart()
第三步:确认你在使用Python3
在Raspberry Pi的终端里运行:
python3 --version
确保你运行脚本时用的是Python3(比如python3 your_script.py),因为Python2的email模块结构和Python3完全不同,而且Python2早就停止维护了,别再用它啦。
为什么笔记本上正常?
大概率是你笔记本上的Python环境没有被第三方email包污染,而且导入语句是正确的;而Raspberry Pi上要么误装了第三方email包,要么运行脚本时用了错误的Python版本/导入方式。
按上面的步骤操作后,应该就能解决这个报错了,试试吧!
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

