Pylint is a static code analyzer for Python that checks errors, enforces coding standards, finds code smells, and suggests refactoring without running the code.
- v4.1.3
- Published at
- 17d ago
- 5,739
- Stars
- 210
- Download
- Synced at
- 8d ago
Latest release
v4.1.3Oct 11, 2026, 07:41 AMDownloads slow? Switch the source anytime above
README
Project Overview
Pylint is a static code analyzer for Python that analyzes source without executing it, checking for errors, enforcing coding standards, finding code smells, and suggesting refactoring. Built on its internal code representation astroid, it infers actual values and finds more issues even in code without complete type annotations. Pylint is highly configurable, supports plugins for custom checks, and ships with pyreverse for class diagrams and symilar for duplicate code detection.
| Item | Value |
|---|---|
| Language | Python |
| Runtime | Python 3.11+ |
| Type | Static code analyzer |
| License | GPL-2.0 |
A deep checker that finds errors and smells without running your code.
Key Features
- Error checking: finds potential errors without running the code
- Standards enforcement: enforces team coding standards
- Smell detection: identifies code smells like duplication and long functions
- Type inference: infers actual values via astroid even without full type annotations
- Refactoring advice: offers actionable improvement suggestions
- Plugin ecosystem: supports custom plugins plus ready-made ones like pylint-django
- Bundled tools: includes pyreverse for diagrams and symilar for duplicate code
- Highly configurable: individual checks can be enabled or disabled
Target Audience
- Python developers
- Legacy project maintainers
- Code quality owners
- Open-source maintainers
- Teams needing deep static analysis
Quick Start
- Install Pylint
pip install pylint- Check a file or project
pylint mymodule.py- For legacy projects start with errors only
pylint --errors-only mymodule.py- Gradually enable more check categories in configuration as priorities evolve
Core Advantages
- Strong inference: finds deep issues without requiring complete type annotations
- More thorough: covers more checks than most linters
- Extensible: plugin mechanism supports custom checks for internal libraries
System Requirements
| Item | Requirement |
|---|---|
| OS | Linux, macOS, Windows |
| Runtime | Python 3.11 or later |
| Spell checking | needs pylint[spelling] and the enchant library |
Notes
- Gradual adoption: start legacy projects with
--errors-only, then widen the checks - Speed tradeoff: deep inference is slower; complement with fast tools like ruff
- Third-party libs: some libraries need matching pylint plugins for full support
Release history
Sort