无法导入Python的邮件模块

54 投票
6 回答
66476 浏览
提问于 2025-04-16 22:27

我似乎根本无法导入email模块。每次尝试时都会出现错误。我已经尝试卸载Python然后重新安装,但email模块就是不管用。我甚至还用“pip install email”命令安装过,但还是不行。我现在使用的是Windows 7 Home Premium x64,运行的是x86版本的Python。

这是发生的情况:

c:\Users\Nicholas\Desktop>python
ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import email
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "email.py", line 1, in <module>
    import smtplib
  File "C:\Python27\lib\smtplib.py", line 46, in <module>
    import email.utils
ImportError: No module named utils
>>>

编辑:我尝试过从python.org下载的Python和ActivePython,想着ActivePython可能会好用。有没有办法彻底删除Python及其所有数据,然后重新开始一次呢?

6 个回答

5

我也遇到过这个错误。除了把email.py改个名字之外,你还必须删除那个email.pyc(注意是C)文件。这样做之后,一切就正常了。谢谢大家!

40

我刚遇到这个错误,想分享一下我的解决办法。在我的情况下,我的文件叫做 email.py,放在一个文件夹里。这就导致了一个名字冲突,因为Python本身也有一个叫 email.py 的文件。当我使用smtplib尝试 import email.utils 时,它去找我的文件,但没有找到任何东西。后来我把自己的 email.py 文件改名为 myemail.py,一切就正常了。

133

看起来你有一个叫 email.py 的文件。尽量不要用和Python标准库模块同名的文件名。一般来说,你的工作目录会在Python查找模块的路径中排在前面,所以如果你的工作目录里有同名文件,就会覆盖掉标准库中同名的模块。

提示:注意追踪信息中的路径名。

  File "email.py", line 1, in <module>
    import smtplib
  File "C:\Python27\lib\smtplib.py", line 46, in <module>
    import email.utils

顺便说一下,这个错误非常常见。Python官方文档中的优秀教程对此有详细讲解,可以在这里查看

撰写回答