Geekerstar

Python代码分析工具Pylint使用教程
什么是PylintPylint是一个Python代码分析工具,它分析Python代码中的错误,查找不符合代码风格标...
扫描右侧二维码阅读全文
12
2018/03

Python代码分析工具Pylint使用教程

什么是Pylint

Pylint是一个Python代码分析工具,它分析Python代码中的错误,查找不符合代码风格标准(Pylint默认使用的代码风格是PEP8)和有潜在问题的代码。目前Pylint的最新版本是1.8.2

  • Pylint 是一个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口是否被真正实现等等。
  • Pylint 的一个很大的好处是它的高可配置性,高可定制性,并且可以很容易写小插件来添加功能。
  • 如果运行两次 Pylint,它会同时显示出当前和上次的运行结果,从而可以看出代码质量是否得到了改进。
  • 目前在 eclipse 的 pydev 插件中也集成了 Pylint。

安装Pylint

本教程默认IDE为Pycharm,Python环境默认Python3.6

Pycharm下安装Pylint

首先,打开Pycharm,选择File-->New Project新建一个工程,自己取名,我们使用Virtualenv环境,关于Virtualenv另外开帖介绍,这里照做就行,Base interpreter选择Python的安装路径中的python.exelocation为本项目单独的环境(一般是项目下面venv文件夹),一般情况下Pycharm已经为我们选好了,按照下图设置即可,点击Create创建工程。

新建pylint工程

选择File-->setting进入设置菜单。

进入设置菜单

按下图所示,找到对应栏目,如果Project interpreter显示<No interpreter>,请自己选择python环境安装地址。

pycharm安装Pylint

点击右边的+号,在上方输入Pylint,然后点击install package进行安装。安装完成后,继续在设置菜单,选中External Tools栏目,右边有个+号箭头,点击进入。

External Tools

完成如下的设置:(这里先按照如下设置即可,具体参数后面说)

pylint设置


Program:E:/PycharmProjects/se/venv/Scripts/pylint.exe

Parameters:-rn --msg-template="{abspath}:{line}: [{msg_id}({symbol}), {obj}] {msg}" $FilePath$

Working directory:$FileDir$

Output filter:$FILE_PATH$:$LINE$:
[/scode]


“Parameters”里其它参数可以随意写,但是必须在最后加上$FilePath$,“Working directory”里必须写 $FileDir。

Pycharm的Pylint到这我们就安装配置完成了。

其他方式安装Pylint

Windows下:

  • 直接在控制台下使用 pip install pylint 即可(如果 pip 不可用,首先安装最新版 Python,会默认安装 pip,或者找到 pip 的安装脚本先装 pip)。装好后,pylint.exe 的大体位置在 Python安装路径/Scripts/ 下,将此路径添加到环境变量 PATH。

Linux下:

  • 直接在 Terminal 中使用 $ sudo pip install pylint安装即可。装好后,pylint 会在 /usr/bin/pylint

Pylint工具的使用

接下来新建一个Python文件,project栏中,右键选中项目名称,选择New-->Python File,输入文件名字即可。

新建Python文件

输入一段程序,这里我们输入以下代码进行测试:

测试代码

在项目上单击右键,选择External Tools-->pylint即可在控制台看到代码分析结果。

代码测试结果

Python代码

此处内容需要评论回复后(审核通过)方可阅读。

如果看到返回值为0,说明程序没问题了。

问题解决

(1)问题:提示“Noconfig file found, using default configuration”
解决办法:生成一个默认的配置文件,控制台里进入Python的script目录,执行:pylint --generate-rcfile > pylintrc,然后再执行:pylint --rcfile=pylint.conf,这样就可以生成pylint.conf配置文件

(2)问题:报告太长。
解决办法:我们可以选择性查阅,加上参数 --reports=n或者更简单写成-rn就行了。

参考资料

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=来查看这个错误的详细信息,这样可以具体地定位错误。

  • -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 ,--output-format= 来指定别的输出格式如html等等。在Pylint的输出中有如下两个部分:源代码分析部分和报告部分。

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

MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE


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

更多内容请参考:
1.如何使用 Pylint 来规范 Python 代码风格
2.Pylint官网


如果您发现了文章有任何错误欢迎指正,有任何意见或建议,或者有疑问需要我提供帮助,也欢迎在下面留言,只需输入昵称+邮箱即可,网站或博客可选填。对于所有留言内容我会及时回复,非常期待与大家的交流![/scode]

版权声明:本文(除特殊标注外)为原创文章,版权归 Geekerstar 所有。

本文链接:http://www.geekerstar.com/backend/449.html

除了有特殊标注文章外欢迎转载,但请务必标明出处,格式如上,谢谢合作。

最后修改:2018 年 04 月 01 日 10 : 09 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论