2012-12-31 47 views
1

我试图运行下面的代码(命名为email.py)工作:语法:蟒蛇的smtplib没有脚本

import smtplib  
GMAIL_USERNAME = raw_input("Enter your username: ") 
GMAIL_PASSWORD = raw_input("Enter your password: ")  
session = smtplib.SMTP('smtp.gmail.com', 587) 
session.ehlo() 
session.starttls() 
session.login(GMAIL_USERNAME, GMAIL_PASSWORD) 

这是错误:

Traceback (most recent call last): 
    File "email.py", line 1, in <module> 
    import smtplib 
    File "/usr/lib/python2.7/smtplib.py", line 46, in <module> 
    import email.utils 
    File "/home/sourya/VProgramming/projects/email.py", line 6, in <module> 
    session = smtplib.SMTP('smtp.gmail.com', 587) 
AttributeError: 'module' object has no attribute 'SMTP' 

然而,代码中并运行时,我在解释器中输入。

怎么了?

+0

导致问题的代码与声明(您正在导入import email.utils)不同,它不是第一个代码片段的一部分.... –

+1

@ user0815:这不是导入email.utils的OP,这是smtplib.py,如果你仔细阅读堆栈跟踪:) – favoretti

回答

4

尝试将您的脚本重命名为(除email.py以外的其他名称)。

email是一个Python模块,但是你的脚本的名字会影响它,并且它不能被导入。

注:不要忘记删除email.pyc为好。

+0

AttributeError与smtplib模块相关,而不是电子邮件模块 –

+0

@ user0815:试试吧,Lev Levitsky是100%正确的。 SMTPlib在水下使用电子邮件,并且脚本的名称会打破自己的导入。 – favoretti

+1

@ user0815是的,这很奇怪。但是你会发现,在'/ usr/lib/python2.7/smtplib.py'中的'import email.utils'之后,回溯到'/ home/sourya/VProgramming/projects/email.py'这不应该发生。 –