Pylint代码分析工具使用详解,并集成到Pycharm步骤

Pylint是一款用于检查Python代码的工具,它可以分析语法错误、编码风格和潜在问题。用户可通过安装pip来获取Pylint,并使用命令行参数进行配置,如生成配置文件、指定警告处理方式等。Pylint能提供详细的报告,包括代码统计、错误和警告信息,有助于提高代码质量和规范性。此外,Pylint可在PyCharm等IDE中集成使用,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Pylint 介绍

Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的语法错误,是否遵守编码风格标准、潜在的问题等,Pylint 是一个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,是否有导入但未使用的模块,如果运行两次 Pylint,它会同时显示出当前和上次的运行结果,从而可以看出代码质量是否得到了改进。
支持自定义配置:例如显示或隐藏特定的警告,并且可以通过编写插件来添加功能;
使用Pylint检查文件时,需要直接将模块或包名作为参数;
可以在命令行以脚本方式运行(pylint),也可作为模块(pylint.lint)导入,建议作为命令行工具使用

二、Pylint安装

pip3 install pylint
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pylint
github地址:https://github.com/PyCQA/pylint
查看是否安装成功:pylint --version

三、查看帮助信息

pylint -h
或
pylint --help

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


--rcfile=<file>
指定一个配置文件;
把使用的配置放在配置文件中,这样不仅规范了自己代码,也可以方便地和别人共享这些规范;
如:pylint --rcfile=pylint.conf s1.py
使用pylint.conf这个配置文件来对s1.py进行检查

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


-r <y_or_n>, --reports=<y_or_n>
表示 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 --persistent=n --generate-rcfile > pylintrc
# 路径下会生成一个pylint.conf文件,都是pylint的默认配置,这个可以自行修改,为了跟团队项目统一

 

五、检查py文件

# 检查单个py文件,指定使用刚刚生成的默认配置文件,不指定,也是使用默认
pylint --rcfile=pylintrc s1.py

 

六、检查整个项目

### 注意:检查整个项目,一定要在项目路径下新建__init__.py,否则会报错
# 切换到上一层
cd .. 
# 执行
pylint pylint_demo
# 修改过后再执行,下图是对比

七、生成报告

# 执行
pylint -ry pylint_demo
# 可以看到报告,
# Statistics by type
有三个模块(py文件);类,方法为0;函数为1个
# Raw metrics
代码总共12行,空行有5行,也就是总共8行有效代码
# Messages by category
有3个convention,0个warning,0个error

#### 说明######
1 Pylint结果的级别:error,warning,refactor,convention;
2 可以根据首字母确定相应的级别,例如,C表示convention(规范)、W表示warning(告警)、E表示error(错误);
3 级别之后的数字表示告警所在文件中的行号和列号;
4 参数 “-ry”开启报告,“-rn”关闭报告(只显示警告和错误),默认为关闭报告;
************* Module pylint_demo.s1
pylint_demo/s1.py:1:0: C0114: Missing module docstring (missing-module-docstring)
************* Module pylint_demo.s2
pylint_demo/s2.py:1:0: C0114: Missing module docstring (missing-module-docstring)
pylint_demo/s2.py:7:0: C0116: Missing function or method docstring (missing-function-docstring)


Report
======
8 statements analysed.

Statistics by type
------------------

+---------+-------+-----------+-----------+------------+---------+
|type     |number |old number |difference |%documented |%badname |
+=========+=======+===========+===========+============+=========+
|module   |3      |NC         |NC         |33.33       |0.00     |
+---------+-------+-----------+-----------+------------+---------+
|class    |0      |NC         |NC         |0           |0        |
+---------+-------+-----------+-----------+------------+---------+
|method   |0      |NC         |NC         |0           |0        |
+---------+-------+-----------+-----------+------------+---------+
|function |1      |NC         |NC         |0.00        |0.00     |
+---------+-------+-----------+-----------+------------+---------+



Raw metrics
-----------

+----------+-------+------+---------+-----------+
|type      |number |%     |previous |difference |
+==========+=======+======+=========+===========+
|code      |12     |70.59 |NC       |NC         |
+----------+-------+------+---------+-----------+
|docstring |0      |0.00  |NC       |NC         |
+----------+-------+------+---------+-----------+
|comment   |0      |0.00  |NC       |NC         |
+----------+-------+------+---------+-----------+
|empty     |5      |29.41 |NC       |NC         |
+----------+-------+------+---------+-----------+



Duplication
-----------

+-------------------------+------+---------+-----------+
|                         |now   |previous |difference |
+=========================+======+=========+===========+
|nb duplicated lines      |0     |NC       |NC         |
+-------------------------+------+---------+-----------+
|percent duplicated lines |0.000 |NC       |NC         |
+-------------------------+------+---------+-----------+



Messages by category
--------------------

+-----------+-------+---------+-----------+
|type       |number |previous |difference |
+===========+=======+=========+===========+
|convention |3      |NC       |NC         |
+-----------+-------+---------+-----------+
|refactor   |0      |NC       |NC         |
+-----------+-------+---------+-----------+
|warning    |0      |NC       |NC         |
+-----------+-------+---------+-----------+
|error      |0      |NC       |NC         |
+-----------+-------+---------+-----------+



% errors / warnings by module
-----------------------------

+---------------+------+--------+---------+-----------+
|module         |error |warning |refactor |convention |
+===============+======+========+=========+===========+
|pylint_demo.s2 |0.00  |0.00    |0.00     |66.67      |
+---------------+------+--------+---------+-----------+
|pylint_demo.s1 |0.00  |0.00    |0.00     |33.33      |
+---------------+------+--------+---------+-----------+



Messages
--------

+---------------------------+------------+
|message id                 |occurrences |
+===========================+============+
|missing-module-docstring   |2           |
+---------------------------+------------+
|missing-function-docstring |1           |
+---------------------------+------------+




------------------------------------------------------------------
Your code has been rated at 6.25/10 (previous run: 6.67/10, -0.42)

八、Pycharm集成Pylint

#program: pylint可执行文件的路径
windows下是:python安装目录下scripts/pylint.exe
linux下是:python安装路径下的找pylint可执行文件

# arguments: 执行参数,最后必须以 $FilePath$ 结尾
比如:指定使用刚刚生成的配置文件
-rcfile=pylintrc $FilePath$

# working directory: 路径
就填下面
$FileDir$

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024小神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值