什么是pylint?

Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准和有潜在问题的代码。

Pylint 是一个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口是否被真正实现等等。

Pylint 的一个很大的好处是它的高可配置性,高可定制性,并且可以很容易写小插件来添加功能。

项目中需要做代码规范检查,所以研究一下pylint的使用。

Pylint 的安装。
Pylint 可以用于所有高于或者等于 2.2 的 Python 版本兼容。
实测 python 2.7.12 安装

pip install  pylint==1.9.3

或者换源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pylint==1.9.3

实测 python3.5.2
``shell
pip install pylint

或者
```shell
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pylint

使用
Pylint 的常用命令行参数
-h,–help
显示所有帮助信息。

–generate-rcfile
可以使用 pylint --generate-rcfile 来生成一个配置文件示例。可以使用重定向把这个配置文件保存下来用做以后使用。也可以在前面加上其它选项,使这些选项的值被包含在这个产生的配置文件里。如:pylint --persistent=n --generate-rcfile > pylint.conf,查看 pylint.conf,可以看到 persistent=no,而不再是其默认值 yes。

–rcfile=
指定一个配置文件。把使用的配置放在配置文件中,这样不仅规范了自己代码,也可以方便地和别人共享这些规范。

-i <y_or_n>, --include-ids=<y_or_n>
在输出中包含 message 的 id, 然后通过 pylint --help-msg=来查看这个错误的详细信息,这样可以具体地定位错误。

-r <y_or_n>, --reports=<y_or_n>
默认是 y, 表示 Pylint 的输出中除了包含源代码分析部分,也包含报告部分。

–files-output=<y_or_n>
将每个 module /package 的 message 输出到一个以 pylint_module/package. [txt|html] 命名的文件中,如果有 report 的话,输出到名为 pylint_global.[txt|html] 的文件中。默认是输出到屏幕上不输出到文件里。

-f , --output-format=
设置输出格式。可以选择的格式有 text, parseable, colorized, msvs (visual studio) 和 html, 默认的输出格式是 text。

–disable-msg=
禁止指定 id 的 message. 比如说输出中包含了 W0402 这个 warning 的 message, 如果不希望它在输出中出现,可以使用 --disable-msg= W0402

Pylint 的输出
Pylint的默认输出格式是原始文本(raw text)格式 ,可以通过 -f ,–output-format= 来指定别的输出格式如html等等。在Pylint的输出中有如下两个部分:源代码分析部分和报告部分。

源代码分析部分:

对于每一个 Python 模块,Pylint 的结果中首先显示一些"*"字符 , 后面紧跟模块的名字,然后是一系列的 message, message 的格式如下:

1
MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE
MESSAGE_TYPE 有如下几种:

(C ) 惯例。违反了编码风格标准

(R ) 重构。写得非常糟糕的代码。

(W) 警告。某些 Python 特定的问题。

(E) 错误。很可能是代码中的错误。

(F) 致命错误。阻止 Pylint 进一步运行的错误。

清单 2. Pylint 中的 utils 模块的输出结果

************* Module utils
C: 88:Message: Missing docstring
R: 88:Message: Too few public methods (0/2)
C:183:MessagesHandlerMixIn._cat_ids: Missing docstring
R:183:MessagesHandlerMixIn._cat_ids: Method could be a function
R:282:MessagesHandlerMixIn.list_messages: Too many branches (14/12)
报告部分:

在源代码分析结束后面,会有一系列的报告,每个报告关注于项目的某些方面,如每种类别的 message 的数目,模块的依赖关系等等。具体来说,报告中会包含如下的方面:

检查的 module 的个数。
对于每个 module, 错误和警告在其中所占的百分比。比如有两个 module A 和 B, 如果一共检查出来 4 个错误,1 个错误是在 A 中,3 个错误是在 B 中,那么 A 的错误的百分比是 25%, B 的错误的百分比是 75%。
错误,警告的总数量。

Python pylint的安装和使用相关推荐

  1. python pycharm 包 安装问题

    20211006 https://blog.csdn.net/anshuai_aw1/article/details/83749395 windows pyfm安装 20210930 在pycharm ...

  2. Python:Scrapy的安装和入门案例

    Scrapy的安装介绍 Scrapy框架官方网址:http://doc.scrapy.org/en/latest Scrapy中文维护站点:http://scrapy-chs.readthedocs. ...

  3. Windows下Python 3.6 安装BeautifulSoup库

    " 介绍Python库BeautifulSoup安装." 01 - BeautifulSoup库介绍 Beautiful Soup是Python的一个库,支持Python 2和Py ...

  4. python开发环境安装

    PyCharm的安装地址:http://www.jetbrains.com/pycharm/download/#section=windows,免费的可以选择社区版本 Python解释器的安装地址:h ...

  5. Python环境的安装(Anaconda+Jupyter notebook+Pycharm)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文总结了Windows下Python环境的安装,包括Anacon ...

  6. python mysql 驱动安装

    为什么80%的码农都做不了架构师?>>>    安装组件: python 3.4 + django 1.7 + mysql connector driver 系统平台: window ...

  7. windows 10 anaconda python 3.7 安装 pytorch-gpu

    win 10 anaconda python 3.7 安装 pytorch 2019-6-1:清华更新源已经关闭了 先添加清华源: 安装GPU版pytorch conda install pytorc ...

  8. windows 10 anaconda python 3.7 安装keras-gpu tensorflow-gpu

    我的个人博客:zhang0peter的个人博客 win 10 anaconda python3.7 安装keras tensorflow-gpu pytorch的安装参考这篇文章:windows an ...

  9. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

最新文章

  1. 《JAVA练习题目11》学生类有属性姓名(字符串类型)和选修课程信息(ArrayList<Course>对象)两个属性,和三个方法
  2. python3.0什么时候发布的_Django 3.0 发布说明
  3. Zing加快了JVM应用程序的预热
  4. JavaScript 监听手机端的touch滑动事件(滑动手势)
  5. python接口自动化(十九)--Json 数据处理---实战(详解)
  6. 看不懂旷视升级,是因为不知道中国AI正在经历的变革
  7. 用户输入和命令行参数
  8. 现代分类方法在医学诊断中的应用——基于R的实现
  9. 设置TOMCAT SESSIONID 字符长度和生成算法
  10. Android 资源(resource)学习小结
  11. 1008 计算(a+b)/c的值
  12. CC2530串口通讯的实现
  13. Eclipse用SVN上传新项目
  14. 小鸟云服务器如何通过本地安全策略阻止IP访问?
  15. 单片机如何烧录程序?单片机的下载方式讲解
  16. 设计一个彩灯循环控制器
  17. VM-虚拟机装苹果系统
  18. 算法作业9 LCS算法和背包算法
  19. Go语言 一级函数 --- 匿名函数、高阶函数、闭包
  20. Javascript模块加载捆绑器Browserify Webpack和SystemJS用法

热门文章

  1. Excel 突显光标所在行列
  2. Linux如何定义宏 REENTRANT,linux – 我需要-D_REENTRANT和-pthreads吗?
  3. vsomeip接口函数解析和程序编写
  4. 关于 牛舍问题 的注释
  5. linux ip bonding,Linux IP Bonding 配置笔记
  6. elk安装教程2017
  7. 【Java】计算矩形面积
  8. Emmet 插件使用教程
  9. 便利贴--43{vue3+ts+setup+ArcoDesign 表格和表单 单页模板(整合)} --舍弃--不删--不更新
  10. touches,targetTouches,changedTouches