运行以下代码时,我不断收到错误:
ImportError: No module named 'email.mime'; email is not a package
所以我跑:
pip install email
并收到以下错误:
ImportError: No module named 'cStringIO'...
Command "python setup.py egg_info" failed with error code 1
互联网告诉我要跑:
pip install --upgrade pip
要解决这个问题,我现在做了很多次。我不知道还能做些什么。
Python版本:Python 3.3.5 | Anaconda 2.3.0(x86_64)
import smtplib,email,email.encoders,email.mime.text,email.mime.base
smtpserver = 'email@site.com'
to = ['address@gmail.com']
fromAddr = 'email@site.com'
subject = "testing email attachments"
# create html email
html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" '
html +='"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">'
html +='<body style="font-size:12px;font-family:Verdana"><p>...</p>'
html += "</body></html>"
emailMsg = email.MIMEMultipart.MIMEMultipart('text/csv')
emailMsg['Subject'] = subject
emailMsg['From'] = fromAddr
emailMsg['To'] = ', '.join(to)
emailMsg['Cc'] = ", ".join(cc)
emailMsg.attach(email.mime.text.MIMEText(html,'html'))
# now attach the file
fileMsg = email.mime.base.MIMEBase('text/csv')
fileMsg.set_payload(file('rsvps.csv').read())
email.encoders.encode_base64(fileMsg)
fileMsg.add_header('Content-Disposition','attachment;filename=rsvps.csv')
emailMsg.attach(fileMsg)
# send email
server = smtplib.SMTP(smtpserver)
server.sendmail(fromAddr,to,emailMsg.as_string())
server.quit()
答案 0 :(得分:47)
我刚才遇到了同样的问题。最后,我找到了它,因为我将python文件命名为&#39; email.py&#39;。它在更改名称后起作用。
答案 1 :(得分:14)
问题在于pip。我无法使用
更新setuptoolseasy_install --upgrade setuptools
我也无法使用
安装pip电子邮件pip install email
我通过使用easy_install
安装电子邮件解决了这个问题easy_install email
希望有人发现这有帮助。感谢那些帮助过的人。
答案 2 :(得分:3)
请勿在您的.py文件名甚至包名称中使用 “电子邮件” 。 这将导致解释器在用户声明的模块和预定义的模块之间混乱
答案 3 :(得分:2)
我遇到了同样的问题。这两个答案都帮我解决了。 但是,此外我还必须删除使用旧名称email.py运行脚本时创建的email.pyc文件。
总结: