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字符串替换的2种方法
Nov 30 Python
python提取内容关键词的方法
Mar 16 Python
探究Python多进程编程下线程之间变量的共享问题
May 05 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
利用python写个下载teahour音频的小脚本
May 08 Python
python交互式图形编程实例(三)
Nov 17 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
python找出因数与质因数的方法
Jul 25 Python
python Pillow图像处理方法汇总
Oct 16 Python
Python如何定义有默认参数的函数
Aug 10 Python
python UIAutomator2使用超详细教程
Feb 19 Python
Python利器openpyxl之操作excel表格
Apr 17 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脚本的10个技巧(6)
2006/10/09 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
js字符编码函数区别分析
2008/06/05 Javascript
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
JSONP之我见
2015/03/24 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
解决vue-router中的query动态传参问题
2018/03/20 Javascript
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
带你了解python装饰器
2017/06/15 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Python Cookie 读取和保存方法
2018/12/28 Python
python实现飞行棋游戏
2020/02/05 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
创业计划书的写作技巧及要点
2014/01/31 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers