pylint-dev

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 AM
Downloads 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

  1. Install Pylint
pip install pylint
  1. Check a file or project
pylint mymodule.py
  1. For legacy projects start with errors only
pylint --errors-only mymodule.py
  1. 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