Pylint学习
Install Pylint
用virtualenv安装pylint:
1 | pip install virtualenv |
创建一个虚拟环境:
1 | virtualenv --no-site-packages venv |
Invoking pylint
pylint可以在命令行使用,具体用法为:
1 | pylint [options] modules_or_packages |
从上面的用法可以得知,我们应该提供pylint要检查的python包或者模块的名称。而Pylint不会导入这些包,而是利用Python internals去进行定位。因此我们需要关注PYTHONPATH,防止它去检查已安装的模块版本,而不是开发版本。
如果传给pylint一个单文件,例如这样:
1 | pylint mymodules.py |
就要保证当前的工作目录为一个package(即目录下有__init__.py)。
另外,也可以在其它的python程序中调用pylint,比如:
1 | from pylint import epylint as lint |
command line options
先来看两个基本的选项:
--version | show program's version number and exit |
---|---|
-h, --help | show help about the command line options |
1 | (venv) ➜ py pylint --version |
接下来介绍一个message control的命令后选项:--disable和--enable,如果我们只是希望启动某些checker,可以先用--disable = all然后使用--enable = <symbol>,其中<symbol>是逗号分隔的检查器名称和消息符号列表。这样的使用方式对于仅仅希望启动少数的checkers非常有用。
举个例子,假如你只想启动相似性检查,可以增加选项:
1 | –-disable=all –-enable=similarities |
pylint提供的symbol,可以参考:https://docs.pylint.org/en/1.6.0/features.html#messages-control-options
Parallel execution
如果主机的CPU数量超过1个,可以使用-j选项加速pylint的运行,比如:
1 | pylint -j 4 mymodule1.py mymodule2.py mymodule3.py mymodule4.py |
这样就会产生4个子进程,其中每个提供的模块将被并行检查。checkers发现的问题不会立即显示。 完成检查模块后才会立即显示它们。当提供的参数为0时,将会使用主机上所有CPU的数量。