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中列表、字符串、字典的常用操作
Sep 19 Python
python实现简单登陆系统
Oct 18 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
Jan 29 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
django 数据库返回queryset实现封装为字典
May 19 Python
Python实现弹球小游戏
Aug 01 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
pycharm 关闭search everywhere的解决操作
Jan 15 Python
用 Python 元类的特性实现 ORM 框架
May 19 Python
Opencv中cv2.floodFill算法的使用
Jun 18 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中Ctype函数用法详解
2014/12/09 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python发送邮件功能实现代码
2016/07/15 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
python 正确保留多位小数的实例
2018/07/16 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
当当网软件测试笔试题
2015/11/24 面试题
银行学习十八大感想
2014/01/11 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
宣传工作经验材料
2014/06/02 职场文书
2015年教学工作总结
2015/04/02 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
python如何获取网络数据
2021/04/11 Python
pandas取dataframe特定行列的实现方法
2021/05/24 Python
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers