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

Nic*_*las 45 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
>>>
Run Code Online (Sandbox Code Playgroud)

编辑:我已经尝试过python.org和ActivePython中的Python,认为ActivePython可能有效.反正有没有完全删除python及其所有数据并开始100%新鲜?

Ned*_*ily 111

看起来你有一个名为的文件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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这是一个非常常见的错误.Python标准文档集中的优秀教程在此处讨论它.

  • 如果是这种情况,请务必从工作目录中删除email.pyc. (21认同)
  • 所有Python模块都应该以某种方式唯一地命名空间,以避免任何潜在的这种失败.你必须知道哪些文件名要避免在你自己的项目中使用,这有点荒谬. (10认同)

Vla*_*sky 36

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

  • 别忘了删除`email.pyc`! (3认同)

Jos*_*eon 5

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


小智 5

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