为啥我收到错误消息:没有名为“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”消息?

为啥我在使用 UPDATE 代码时没有收到 No_data_found 错误?

如何使用Email :: Mime与sendmail