python中pylint使用方法(pylint代码检查)


Posted in Python onApril 06, 2018

一、Pylint 是什么

Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准和有潜在问题的代码。
Pylint 是一个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口是否被真正实现等等。
Pylint 的一个很大的好处是它的高可配置性,高可定制性,并且可以很容易写小插件来添加功能。

如果运行两次 Pylint,它会同时显示出当前和上次的运行结果,从而可以看出代码质量是否得到了改进。 目前在 eclipse 的 pydev 插件中也集成了 Pylint。

二、Pylint 在 Linux 上的安装

1. 在 Linux 上,首先安装 Python 的包(高于版本 2.2),并在环境变量 $PATH 中添加 Python 可执行文件的路径。
2. 下载 Pylint、logilab-astng (version >= 0.14) 和 logilab-common (version >= 0.13) 的包 , 使用 tar zxvf *.tar.gz解压缩这些包。
3. 依次进入 logilab-astng、logilab-common 和 Pylint 解开的文件夹中,运行命令 Python setup.py install来安装。
4. 安装完成后,就可以通过 pylint [options] module_or_package来调用 Pylint 了。

三、 Pylint 在 Windows 上的安装

1. 安装 Python 的包(高于版本 2.2),右键单击桌面上的我的电脑图标,选择属性,高级,环境变量,在 $PATH 中添加 Python 的安装路径,如 C:\Python26\。
2. 使用解压缩工具解压缩所有的包。
3. 打开命令行窗口,使用 cd依次进入 logilab-astng、logilab-common 和 Pylint 解开的文件夹中,运行命令 python setup.py install来安装。
4. 安装完成后,在 Python 的安装路径下出现一个 Scripts 文件夹,里面包含一些 bat 脚本,如 pylint.bat 等。
5. 为了使调用 pylint.bat 的时候不需要输入完整路径,在 Python 的安装目录下创建 pylint.bat 的重定向文件,这是一个纯文本文件 pylint.bat,里面包含 pylint.bat 的实际路径,如:C:\Python26\Scripts\pylint.bat。
6. 安装完成后,可以通过 pylint [options] module_or_package来调用 Pylint 了。

四、 pylint使用

使用 Pylint 对一个模块 module.py 进行代码检查:

1. 进入这个模块所在的文件夹,运行

pylint [options] module.py

这种调用方式是一直可以工作的,因为当前的工作目录会被自动加入 Python 的路径中。

2. 不进入模块所在的文件夹,运行

pylint [options] directory/module.py

这种调用方式当如下条件满足的时候是可以工作的:directory 是个 Python 包 ( 比如包含一个 __init__.py 文件 ),或者 directory 被加入了 Python 的搜索路径中。  

使用 Pylint 对一个包 pakage 进行代码检查:

1. 进入这个包所在文件夹,运行

pylint [options] pakage

 这种调用方式是一直可以工作的,因为当前的工作目录会被自动加入 Python 的路径中。

2. 不进入包所在的文件夹,运行

pylint [options] directory/ pakage

 这种情况下当如下条件满足的时候是可以工作的:directory 被加入了 Python 的路径中。比如在 Linux 上,export PYTHONPATH=$PYTHONPATH: directory。
此外,对于安装了 tkinter 包的机器,可以使用命令 pylint-gui打开一个简单的 GUI 界面,在这里输入模块或者包的名字 ( 规则同命令行 ), 点击 Run,Pylint 的输出会在 GUI 中显示。

五、 Pylint常用命令行参数

-h,--help : 显示所有帮助信息。
--generate-rcfile :可以使用 pylint --generate-rcfile 来生成一个配置文件示例。可以使用重定向把这个配置文件保存下来用做以后使用。也可以在前面加上其它选项,使这些选项的值被包含在这个产生的配置文件里。 如:pylint -- persistent=n --generate-rcfile > pylint.conf, 查看 pylint.conf,可以看到 persistent=no,而不再是其默认值 yes。
--rcfile=<file> :指定一个配置文件。把使用的配置放在配置文件中,这样不仅规范了自己代码,也可以方便地和别人共享这些规范。
-i <y_or_n>, --include-ids=<y_or_n> :在输出中包含 message 的 id, 然后通过 pylint --help-msg=<msg-id>来 查看这个错误的详细信息,这样可以具体地定位错误。
-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 <format>, --output-format=<format> :设置输出格式。可以选择的格式有 text, parseable, colorized, msvs (visual studio) 和 html, 默认的输出格式是 text。
--disable-msg= <msg ids> :禁止指定 id 的 message. 比如说输出中包含了 W0402 这个 warning 的 message, 如果不希望它在输出中出现,可以使用 --disable-msg= W0402

六、Pylint的输出

Pylint的默认输出格式是原始文本(raw text)格式 ,可以通过 -f <format>,--output-format=<format> 来指定别的输出格式如html等等。 

在Pylint的输出中有如下两个部分:源代码分析部分和报告部分。
源代码分析部分:

对于每一个 Python 模块,Pylint 的结果中首先显示一些"*"字符 , 后面紧跟模块的名字,然后是一系列的 message, message 的格式如下: __MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE__ MESSAGE_TYPE 有如下几种:

(C) 惯例。违反了编码风格标准
(R) 重构。写得非常糟糕的代码。
(W) 警告。某些 Python 特定的问题。
(E) 错误。很可能是代码中的错误。
(F) 致命错误。阻止 Pylint 进一步运行的错误。
 

报告部分:

在源代码分析结束后面,会有一系列的报告,每个报告关注于项目的某些方面,如每种类别的 message 的数目,模块的依赖关系等等。
具体来说,报告中会包含如下的方面: 检查的 module 的个数。 对于每个 module, 错误和警告在其中所占的百分比。
比如有两个 module A 和 B, 如果一共检查出来 4 个错误,1 个错误是在 A 中,3 个错误是在 B 中,那么 A 的错误的百分比是 25%, B 的错误的百分比是 75%。 错误,警告的总数量。

python中pylint使用方法

在Eclipse IDE 下, 打开 Window->Preferences... 对话框,从右侧的树形列表中选择“ PyDev”->“Interpreter Python”, 点击New按钮,从Python的安装路径下选择Python.exe,然后会弹出一个对话框让你勾选System PYTHONPATH,我是都选了,应该无所谓。最后点Ok,退出。

一、进行Django项目的开发配置

1、建立PyDev Project

Eclipse IDE——>File——>New——>Other——>Pydev——>选择Pydev Project——>起一个项目的名称(例如demo)——>选择路径,如E:/work——>选择适合你的Python版本(我的是2.5)——>将下面的勾去掉,不要建立src文件——>Finish。

2、建立Django Project

(1)django-admin.py startproject demo。(貌似不能在命令行直接用django-admin.py,而必须使用C:/Python26/Scripts/django-admin.py,后来才知道要把C:/Python26/Scripts加入Path.)

(2)把生成的Django项目目录拷贝到Eclipse刚刚建立的项目下的目录里。返回刚才的Elicpse IDE——>在PyDev Package视图中刷新刚新建的项目demo,即可看到Django项目工程。添加、删除文件和目录的操作都可以通过右键菜单来完成。

3、Django项目工程配置

(1)project 右键——>属性——>选择PyDev-PYTHONPATH——>add source folder(选择项目文件路径添加到项目代码——>确定 。

(2)对Pydev项目进行配置:

选择Pydev的项目名称——>Run as——>Open Run Dialog——>Python Run——>右键New——>在Main面板中写入项目名称,通过Browse载入项目名称和Main Module,Main Module选择manage.py——>在Augement面板中,arguments中输入 runserver --noreload,下面的working directory加入你的base directory。

二、进行Django项目的调试配置

跟开发配置差不多,但是添加了两个环境变量,具体操作如下:
(1)project 右键 ——>Debug as ——>open Debug dialog。
(2)main窗口中选择manage.py所在的project,Main Module选择manage.py所在文件位置。
(3)arguments中输入 runserver --noreload。
(4)Environment中添加DJANGO_SETTINGS_MODULE=settings ,PYTHONPATH=$PWD。

三、配置pylint

    1、pylint简介

         pylint主要用来分析你的PY代码,查找出其中的错误,并给出提示,并且还可以为你提出一些编码风格的提示的一个PYTHON模块。总之,它的作用是使得你的代码更加的接近 PEP 008 (http://www.python.org/dev/peps/pep-0008/) Title:  Style Guide for Python Code 中所描述的代码风格,使你的代码统一并更加可读。

    2、下载并安装pylint

         pylint, logilab-astng, logilab-common ,安装方式跟安装django的方式都是一样的。也就是直接使用
  python setup.py install 即可。

    3、配置使用pylint
         (1)Window -> preferences -> Pydev -> Pylint,选中"Use pylint?",再输入lint.py的地址,例如"C:/Python25/Lib/site-packages/pylint/lint.py"

         (2)并在最后编辑框中添加参数,以限制pylint的输出。

             --persistent=n --comment=n

    --disable-msg=C0103,C0301,W0312,W0511,W0232,E1101

 

         (3)Project->Properties->PyDev-PYTHONPATH增添项目的源文件目录到"Project Source Folders"。
         (4)选中Project->Build Automatically,这样保存修改时pylint就会自动check项目中的代码,否则就要用Ctrl+B手动build并触发pylint。

  参考文档:

http://pydev.org/manual_adv_pylint.html

Python 相关文章推荐
跟老齐学Python之编写类之三子类
Oct 11 Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
python django事务transaction源码分析详解
Mar 17 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
Jan 07 Python
Python不同目录间进行模块调用的实现方法
Jan 29 Python
Python生成一个迭代器的实操方法
Jun 18 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
Django之PopUp的具体实现方法
Aug 31 Python
使用Pytorch搭建模型的步骤
Nov 16 Python
python使用requests库爬取拉勾网招聘信息的实现
Nov 20 Python
VSCode下配置python调试运行环境的方法
Apr 06 #Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 #Python
详解django三种文件下载方式
Apr 06 #Python
Anaconda入门使用总结
Apr 05 #Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 #Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
Apr 05 #Python
Python批量合并有合并单元格的Excel文件详解
Apr 05 #Python
You might like
PHP多线程抓取网页实现代码
2010/07/22 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
webpack入门必知必会
2017/01/16 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
python中 * 的用法详解
2019/07/10 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
周年庆典邀请函范文
2014/01/24 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
滞留工资返还协议书
2014/10/19 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js