根本无法导入Python的电子邮件模块

时间:2011-07-28 15:45:53

标签: python email

我似乎无法导入电子邮件模块。每次我这样做都会出错。我已经尝试卸载Python并重新安装,但电子邮件模块只是拒绝工作。我甚至完成了“点击安装电子邮件”,它仍然被打破了。我使用的是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和ActivePython中的Python,认为ActivePython可能有效。无论如何要完全删除python及其所有数据并开始100%新鲜吗?

5 个答案:

答案 0 :(得分:103)

看起来你有一个名为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标准文档集中的优秀教程讨论了它here

答案 1 :(得分:34)

我刚遇到此错误并希望分享我的解决方案。就我而言,我在目录中有一个名为email.py的文件。这在Python的email.py和我的文件之间产生了名称冲突。当smtplib尝试import email.utils它看起来和我的文件,但没有找到任何东西。在我将email.py的副本重命名为myemail.py后,一切都像魅力一样。

答案 2 :(得分:5)

我也遇到过这个错误。除了将email.py重命名为其他内容之外,您还必须删除 email.pyc(注意C)文件。在那之后,一切都很好。谢谢大家!

答案 3 :(得分:3)

我也提到了这个问题,因为我的项目目录中有一个名为email.py的文件。我无法导入urllib.request 。当我将文件名email.py更改为emailtest.py时,错误就消失了。 在每次我们都不应该使用与python核心文件名相同的名称。

答案 4 :(得分:-13)

npm install email

解决了我的问题,试试吧。