CheckOps
Pylint
Pylint is a GPL-2.0 static code analyser for Python that checks errors, coding standards, code smells and refactoring opportunities, with plugins and detailed messages.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Pylint is a static code analyser for Python. Its README jokes that it is not just a linter that annoys you, and it is known for depth: it infers values and types to find errors that simpler linters miss.
Messages cover errors, warnings, conventions and refactoring suggestions, such as unused arguments, too many branches, inconsistent return statements and duplicate code. Plugins extend it for frameworks like Django, and pyreverse generates UML diagrams. Configuration in pyproject.toml or .pylintrc tunes messages.
In the quality loop Pylint offers deeper checks than fast linters, at the cost of speed.
The source code is at pylint-dev/pylint on GitHub under the GPL-2.0 licence, with about 5,700 stars; the most recent commit was on 10 November 2026.
Features
- Inference: Understands values and types.
- Refactoring messages: Suggests simpler code.
- Duplicate code: Detects similar blocks.
- Plugins: Django and others.
- pyreverse: UML diagrams.
- Scoring: Overall code rating.
Pros
- Depth: Finds issues fast linters miss.
- Free to use: Open source under the GPL-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 10 November 2026.
- Community: About 5,700 GitHub stars.
Cons
- Slow: Much slower than Ruff.
- Noisy defaults: Needs configuration.
- Overlap: Ruff covers many of the same checks.
Usage and Links (Example)
pip install pylint
pylint src/ --disable=C0114,C0115
Resources:
Pricing
Pylint is free and open source under the GPL-2.0 licence.
Recommended for?
- Python teams wanting deeper analysis.
- Projects keeping checks Ruff does not implement.
Conclusion
Pylint is the deepest classic linter for Python.
Many teams now run Ruff first and keep Pylint for specific checks.
On CheckOps, Pylint is filed under the Release & CI gates stage. Related tools listed here include Ruff, mypy, Pyright, Bandit, pre-commit and SonarQube. When comparing them, weigh the licence, the languages and platforms each supports, whether it is self-hosted or managed, and how cleanly it slots into your existing CI pipeline. Details on this page were checked against the official website, documentation and repository on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Pylint side by side.
RRuffRuff is an MIT, Rust-based Python linter and formatter from Astral that is 10-100x faster than Flake8 and Black, with over 900 built-in rules and auto-fix.Compare with Pylint
Mmypymypy is an MIT optional static type checker for Python that checks type hints, supports gradual typing and integrates with editors and CI.Compare with Pylint
PPyrightPyright is an MIT static type checker for Python from Microsoft, built for speed on large codebases, with a CLI and language server used by Pylance.Compare with Pylint
BBanditBandit is the PyCQA's Apache-2.0 tool for finding common security issues in Python code by building an AST for each file and running security plugins against it.Compare with Pylint
Ppre-commitpre-commit is an MIT framework for managing multi-language Git pre-commit hooks, running linters, formatters and checks before code is committed and in CI.Compare with Pylint
SSonarQubeModernize your AI workflows with code verification for the agentic era.Compare with Pylint