python - Pylint 给出错误,但代码工作正常

标签 python pylint

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)

请注意无法导入,但我的脚本运行正常。这是有问题的代码:

#!/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

pylint sendmail.py

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

python 64 位和 32 位都以同样的方式提示,使用 python 2.6.6。

最佳答案

各种大写名称在 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

例如。

关于python - Pylint 给出错误,但代码工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10345578/

相关文章:

python - Google App Engine 上的简单博客 - 没有显示任何条目

python - 无法使用 python 在 azure 函数中使用 pandas 读取 csv

python - 训练数据中的文档属于 LDA 中的特定主题

python - 你如何告诉 pylint protobuf 生成的对象的成员是什么?

python - pylint:类 'message' 没有 'startswith' 成员

python - 如何在 Intellij IDEA 中运行 pylint 插件?

python - 解压gzip文件时出现IOError

Python:如何在打印函数内添加带有变量的新行

python - Pylint 与 Django

python - 如何在pylint中禁用 "Using config file"