代码检测

代码检查工具

pep8/pycodestyle

pep8

安装: pip3 install pep8

使用: pep8 <file name or directory name>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(practice) D:\pycharm\pythoncode\practice\whiteboard>pep8 practice01.py
d:\pycharm\venv\practice\lib\site-packages\pep8.py:2124: UserWarning:

pep8 has been renamed to pycodestyle (GitHub issue #466)
Use of the pep8 tool will be removed in a future release.
Please install and use `pycodestyle` instead.

$ pip install pycodestyle
$ pycodestyle ...

'\n\n'
practice01.py:16:1: E302 expected 2 blank lines, found 0
practice01.py:49:1: E302 expected 2 blank lines, found 1
practice01.py:53:80: E501 line too long (94 > 79 characters)
practice01.py:64:16: W291 trailing whitespace
practice01.py:94:1: W391 blank line at end of file

他告诉我们pep8工具在未来将会被移除, 并且使用pycodestyle来代替

pycodestyle

安装: pip3 install pycodestyle

使用: pycodestyle <file name or directory name>

pycodestyle的使用非常灵活, 他有很多参数, 我们可以自己去选择或者配置, 他的文档在这里。可以在pypi.org上面去查看这个第三方库。下面将几种可能使用的参数

  • --statistics -qq对结果进行汇总

    1
    python test01.py --statistics -qq
  • --show-source 查看更详细的输出, 它会具体告诉是哪个文件的具体位置

    1
    python test01.py --show-source
  • --ignore 忽略指定的输出

    1
    python test01.py --ignore=E302,E501

pyflakes

Pyflakes做出了一个简单的承诺:它永远不会抱怨风格,它会非常非常努力地永远不会发出误报。

Pyflakes也快于pylint的Pychecker。这主要是因为Pyflakes只分别检查每个文件的语法树。因此,Pyflakes在它可以检查的事物类型方面受到更多限制。

如果你喜欢Pyflakes但也想要风格检查,你需要 flake8,它将Pyflakes与PEP 8样式检查相结合, 并增加了每个项目的配置能力。

安装

pip3 install pyflakes

使用

pyflasks <file name or directory name>

1
2
3
举例:
(practice) D:\pycharm\pythoncode\practice\whiteboard>pyflakes practice02.py
practice02.py:15: 'line_profiler' imported but unused

flake8

flake8结合了pep8和pyflakes的特点, 并添加了新的特点。因此我们可以使用flake8完全代替pep8和pyflakes。

安装

pip3 install flake8

使用

flake8 <file name or directory name>

pylint

Pylint是一个Python静态代码分析工具,它可以查找编程错误,帮助强制执行编码标准,嗅探代码异味并提供简单的重构建议。

它具有高度可配置性,具有特殊的编译指示来控制代码中的错误和警告,以及广泛的配置文件。也可以编写自己的插件来添加自己的检查或以某种方式扩展pylint。

它是根据GNU通用公共许可证分发的免费软件。

pylint的实用性很高, 对有代码洁癖的人很友好, 但是它可能也会产生一些误判风格问题。它会对代码进行打分, 如果你的代码产生了负分, 可能你不得不想办法改正这些问题, 否则, 它不在优雅。

pylint 和 flake8都是值得推荐的静态代码检测工具

安装

pip3 install pylint

使用

pylint <file name or directory>, pylint相当严格, 检测文件夹时,产生很多问题不益于查看.

例子

1
2
3
4
5
6
(practice) D:\pycharm\pythoncode\practice\whiteboard>pylint example09.py
************* Module example09
example09.py:28:0: R0903: Too few public methods (1/2) (too-few-public-methods)

------------------------------------------------------------------
Your code has been rated at 9.62/10 (previous run: 9.23/10, +0.38)

代码执行效率检测

line_profiler和kernprof

memory_profiler

cprofiler

-------------end-------------
0%