2012-04-27 83 views
1
No config file found, using default configuration 
************* Module sendmail 
C:153,0: Line too long (146/80) 
C:156,0: Line too long (105/80) 
C:190,0: Line too long (88/80) 
F: 8,0: Unable to import 'email.MIMEMultipart' 
E: 8,0: No name 'MIMEMultipart' in module 'email' 
F: 9,0: Unable to import 'email.MIMEBase' 
E: 9,0: No name 'MIMEBase' in module 'email' 
E: 10,0: No name 'Encoders' in module 'email' 
R: 47,0:sendmail: Too many arguments (7/5) 
R: 47,0:sendmail: Too many local variables (17/15) 
W: 74,4:sendmail: No exception type(s) specified 
W: 95,12:sendmail: No exception type(s) specified 
R:142,0:commandline_handler: Too many branches (15/12) 

注意无法导入,但我的脚本正常工作。这里是有问题的代码:Pylint给出错误,但代码工作正常

#!/usr/local/bin/python 
''' sendmail module. 

Can be used to send mail, attachments, or otherwise. 

''' 
from email.mime.text import MIMEText 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEBase import MIMEBase 
from email import Encoders 
import getopt 
import os 
import smtplib 
import sys 

def main(): 

当我运行该程序时,它工作得很好,但为什么pylint抱怨?

我跑通过简单地做

pylint sendmail.py 

我安装pylint的和logilab库从http://www.logilab.org/

两个蟒64位和32位抱怨同样的方式,使用Python 2.6.6 pylint的。

回答

5

在Python 2.5中重新命名了各种大写字母的名称。有关详细信息,请参见http://docs.python.org/release/2.7/library/email.html#package-history。基地email包的__init__.py做了一些技巧,使旧的名称在python中工作,但由于pylint有其自己的独立方法进行导入,这些技巧不能在pylint中工作。

切换到新的名字和你应该罚款:

from email.mime import multipart as MIMEMultipart 
from email.mime import base as MIMEBase 
from email import encoders as Encoders 

例如。

相关问题