pycodestyle:Python 代码风格检查器

pycodestyle 在 GitHub 上已经拿到 5,156 Star 了。

这个工具只做一件事:检查 Python 代码是否符合 PEP 8 风格规范。它以前叫 pep8,2016 年应 Python 之父 Guido 的要求改了名,目的是减少"pep8 这个工具"和"PEP 8 这份规范"之间的混淆。

正文顶部截图

1、 这玩意儿是干嘛的

PEP 8 是 Python 社区沿用多年的代码风格指南,规定了缩进、命名约定、空格使用、行长度上限等细节。pycodestyle 就是帮你自动检查代码是否遵循这些规则的。

运行一次,它会逐行扫描代码,把不符合规范的位置标出来,输出格式长这样:

optparse.py:69:11: E401 multiple imports on one line

文件名、行号、列号、错误码、说明,五项信息排成一行。这种格式可以被编辑器直接解析,点击就能跳转到出错位置。

README区域截图

2、 为什么要用它

手动检查代码风格是件枯燥的事。多一个空格、少一个空行,review 的时候反复来回改,既耗时间又容易起摩擦。

pycodestyle 把这种琐碎的判断交给机器。写代码的人专注逻辑,风格问题在提交前就扫干净。团队里所有人跑同一套规则,代码库看起来像是出自同一人之手。

它还够轻。整个工具就是一个 Python 文件,只依赖标准库。你甚至可以直接把 pycodestyle.py 拷贝到项目里用,不用操心额外的依赖安装。

3、 安装与使用

pip 直接装:

pip install pycodestyle

检查单个文件:

pycodestyle --first optparse.py

带上 --show-source 和 --show-pep8,它会把出错的那行代码印出来,并附上 PEP 8 的相关原文:

pycodestyle --show-source --show-pep8 testing/data/E40.py

输出结果像这样:

testing/data/E40.py:2:10: E401 multiple imports on one line
import os, sys
         ^
    Imports should usually be on separate lines.

    Okay: import os\nimport sys
    E401: import sys, os

想统计各类错误出现的次数,加 --statistics:

pycodestyle --statistics -qq Python-2.5/Lib

4、 扩展性

pycodestyle 用插件架构设计,加新检查规则很容易。它也自带全面的测试套件,改代码或者扩展功能时有质量保障。

5、 适合哪些人用

  • 想保持代码风格一致的 Python 开发者
  • 团队协作中需要统一规范的工程
  • 在 CI 流程里加自动化风格检查的人

5、 适合哪些人用

  • 想保持代码风格一致的 Python 开发者
  • 团队协作中需要统一规范的工程
  • 在 CI 流程里加自动化风格检查的人

更多推荐