为啥我收到错误消息:没有名为“email.MIMEMultipart”的模块?
Posted
技术标签:
【中文标题】为啥我收到错误消息:没有名为“email.MIMEMultipart”的模块?【英文标题】:Why am I getting the error: No module named 'email.MIMEMultipart'?为什么我收到错误消息:没有名为“email.MIMEMultipart”的模块? 【发布时间】:2017-01-25 06:25:17 【问题描述】:我正在尝试使用简单的代码从 Python 脚本发送电子邮件。我不断收到模块“email.MIMEMultipart”不存在的错误消息。为了简化问答过程,我可以进一步缩小范围。从 Python 环境提示我可以输入
>>>导入电子邮件
>>> 目录(电子邮件)
它将列出电子邮件模块中的一堆模块,但没有一个 MIME 模块。我可以在与所有其他模块相同的 lib 文件夹中的 WindowsExplorer 中看到它们。在搜索了其他问题之后,我确实看到我已经将我的测试程序命名为“email.py”,我现在看到这是一个很大的禁忌。我删除了它并确认没有“email.pyc”。
我使用的是 Windows 10、Python 3.5.2。我也已经重新安装了 Python,但没有任何改进。
谁能告诉我我还应该检查什么? 这是实际代码:
import smtplib
from email.MIMEMultipart import MIMEMultipart
【问题讨论】:
提防 Python 2 的旧指令,但也要注意email
库在 Python 3.5 中进行了大修。您仍然可以找到很多针对 3.5 之前状态的在线资源。特别是,查找 3.5 中新增的 policy
参数。
【参考方案1】:
from email.MIMEMultipart import MIMEMultipart
对于 Python 2.x 是正确的导入。
根据the documentation (email) 中的 Python 3 示例,您需要:
from email.mime.multipart import MIMEMultipart
【讨论】:
我是第一个给它贴上 Python 3 的标签,我觉得知道 OP 可能在某处找到的代码看起来像它并没有什么坏处,因为它是为 Python 2 设计的。它没有意思是沾沾自喜,这里没有不好的感觉。 如果你不喜欢它,我可以把它放在评论中。以上是关于为啥我收到错误消息:没有名为“email.MIMEMultipart”的模块?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在使用 Spring Boot Application 的邮递员中没有收到错误消息
为啥我在本地环境(而在原始服务器上没有)上的 Wordpress 博客文章(仅)上收到错误消息
Python邮件发送。为啥我用smtp发送邮件,发送成功没有报错,却没有收到邮件?求解
谁能告诉我为啥我从 GitLab 收到此“错误:作业失败:退出代码 1”消息?