搜索
首页后端开发Python教程python中pylint使用方法(pylint代码检查)_python
python中pylint使用方法(pylint代码检查)_pythonApr 08, 2018 am 11:15 AM
pylintpython使用方法

Pylint 提供了简单的方式来分析 Python 代码,其高可配置性很容易使一个部门的人员使用统一的代码风格。 本文将通过理论介绍和示例分析阐述如何 Pylint 来规范 Python 代码

一、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= :指定一个配置文件。把使用的配置放在配置文件中,这样不仅规范了自己代码,也可以方便地和别人共享这些规范。
-i , --include-ids= :在输出中包含 message 的 id, 然后通过 pylint --help-msg=来 查看这个错误的详细信息,这样可以具体地定位错误。
-r , --reports= :默认是 y, 表示 Pylint 的输出中除了包含源代码分析部分,也包含报告部分。
--files-output= :将每个 module /package 的 message 输出到一个以 pylint_module/package. [txt|html] 命名的文件中,如果有 report 的话,输出到名为 pylint_global.[txt|html] 的文件中。默认是输出到屏 幕上不输出到文件里。
-f , --output-format= :设置输出格式。可以选择的格式有 text, parseable, colorized, msvs (visual studio) 和 html, 默认的输出格式是 text。
--disable-msg= :禁止指定 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 进一步运行的错误。
 

报告部分:

在源代码分析结束后面,会有一系列的报告,每个报告关注于项目的某些方面,如每种类别的 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

相关推荐:

如何使用 Pylint 来规范 Python 代码风格(来自IBM)_python

python代码检查工具pylint 让你的python更规范

以上是python中pylint使用方法(pylint代码检查)_python的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
详细讲解Python之Seaborn(数据可视化)详细讲解Python之Seaborn(数据可视化)Apr 21, 2022 pm 06:08 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

详细了解Python进程池与进程锁详细了解Python进程池与进程锁May 10, 2022 pm 06:11 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

Python自动化实践之筛选简历Python自动化实践之筛选简历Jun 07, 2022 pm 06:59 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

归纳总结Python标准库归纳总结Python标准库May 03, 2022 am 09:00 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于标准库总结的相关问题,下面一起来看一下,希望对大家有帮助。

Python数据类型详解之字符串、数字Python数据类型详解之字符串、数字Apr 27, 2022 pm 07:27 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

分享10款高效的VSCode插件,总有一款能够惊艳到你!!分享10款高效的VSCode插件,总有一款能够惊艳到你!!Mar 09, 2021 am 10:15 AM

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

详细介绍python的numpy模块详细介绍python的numpy模块May 19, 2022 am 11:43 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

python中文是什么意思python中文是什么意思Jun 24, 2019 pm 02:22 PM

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),