Pylint:Python 代码静态分析的老牌工具

Python 代码分析工具 Pylint,目前收获了 5,683 个 Star:

正文顶部截图

README区域截图

Pylint 是一款面向 Python 的静态代码分析工具,最新版本支持 Python 3.10 及以上版本。它不执行代码,直接分析源代码本身,检查错误、执行编码规范、发现代码异味,并给出重构建议。

核心特点

Pylint 与其他 linter 的一个关键区别在于:它不依赖类型注解,而是通过内部库 astroid 推断代码中各节点的实际值。即使代码里写了 import logging as argparse,Pylint 也能判断出 argparse.error(...) 实际是一个日志调用,而非 argparse 调用。这种推断能力让 Pylint 发现更多潜在问题,代价是分析速度会慢一些。

Pylint 的检查项数量较多,部分带有主观色彩的规则默认关闭,可以通过配置文件按需启用。

安装

通过 pip 安装:

pip install pylint

如需拼写检查功能,可安装带 enchant 依赖的版本:

pip install pylint[spelling]

使用方法

Pylint 的命令行工具直接使用 pylint 命令即可:

pylint your_module.py

对于从未使用过 Pylint 的遗留项目,建议先使用 --errors-only 参数,只显示错误级别的警告。之后可以用 --disable=C,R 关闭约定和重构类信息,逐步根据实际需求调整规则启用范围。

Pylint 的配置灵活性很高,支持编写自定义插件来添加内部规则或针对特定库的扩展检查。生态中已有 pylint-django、pylint-pydantic 等插件,覆盖常见框架和库。

配套工具

Pylint 还附带两个实用工具:

  • pyreverse:根据代码生成包结构图和类图
  • symilar:查找代码中的重复片段,该功能也已集成进 Pylint 主程序

与其他工具配合

Pylint 可以和多种工具搭配使用。ruff 速度极快,内置自动修复,适合作为日常快速检查;flake8 提供了基于 ast 的检查框架;mypy、pyright 负责类型检查;bandit 专注安全问题;black 和 isort 处理代码格式化。不同工具覆盖不同场景,组合使用效果更好。

Pylint 采用 GPLv2 协议开源(图标文件除外,采用 CC BY-SA 4.0)。

效果更好。

Pylint 采用 GPLv2 协议开源(图标文件除外,采用 CC BY-SA 4.0)。

更多推荐