Pylint:Python 代码静态分析的老牌工具
Pylint:Python 代码静态分析的老牌工具
Python 代码分析工具 Pylint,目前收获了 5,683 个 Star:


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)。
更多推荐
所有评论(0)