Python style guide checker
Project Links
Meta
Author: Johann C. Rocholl
Maintainer: Ian Lee
Requires Python: >=3.9
Classifiers
Development Status
- 5 - Production/Stable
Environment
- Console
Intended Audience
- Developers
Operating System
- OS Independent
Programming Language
- Python
- Python :: 3
- Python :: 3 :: Only
- Python :: Implementation :: CPython
- Python :: Implementation :: PyPy
Topic
- Software Development :: Libraries :: Python Modules
pycodestyle is a tool to check your Python code against some of the style conventions in PEP 8.
Features
Plugin architecture: Adding new checks is easy.
Parseable output: Jump to error location in your editor.
Small: Just one Python file, requires only stdlib. You can use just the pycodestyle.py file for this purpose.
Comes with a comprehensive test suite.
Installation
You can install, upgrade, and uninstall pycodestyle.py with these commands:
$ pip install pycodestyle $ pip install --upgrade pycodestyle $ pip uninstall pycodestyle
There’s also a package for Debian/Ubuntu, but it’s not always the latest version.
Example usage and output
$ pycodestyle --first optparse.py
optparse.py:69:11: E401 multiple imports on one line
optparse.py:77:1: E302 expected 2 blank lines, found 1
optparse.py:88:5: E301 expected 1 blank line, found 0
optparse.py:347:31: E211 whitespace before '('
optparse.py:357:17: E201 whitespace after '{'
optparse.py:472:29: E221 multiple spaces before operator
You can also make pycodestyle.py show the source code for each error, and even the relevant text from PEP 8:
$ pycodestyle --show-source --show-pep8 testing/data/E40.py
testing/data/E40.py:2:10: E401 multiple imports on one line
import os, sys
^
Imports should usually be on separate lines.
Okay: import os\nimport sys
E401: import sys, os
Or you can display how often each error was found:
$ pycodestyle --statistics -qq Python-2.5/Lib
232 E201 whitespace after '['
599 E202 whitespace before ')'
631 E203 whitespace before ','
842 E211 whitespace before '('
2531 E221 multiple spaces before operator
4473 E301 expected 1 blank line, found 0
4006 E302 expected 2 blank lines, found 1
165 E303 too many blank lines (4)
325 E401 multiple imports on one line
3615 E501 line too long (82 characters)
Links
2.14.0
Jun 20, 2025
2.13.0
Mar 29, 2025
2.12.1
Aug 04, 2024
2.12.0
Jun 15, 2024
2.11.1
Oct 12, 2023
2.11.0
Jul 29, 2023
2.10.0
Nov 23, 2022
2.9.1
Aug 03, 2022
2.9.0
Jul 30, 2022
2.8.0
Oct 11, 2021
2.7.0
Mar 14, 2021
2.6.0
May 11, 2020
2.6.0a1
Apr 23, 2020
2.5.0
Jan 29, 2019
2.4.0
Apr 10, 2018
2.3.1
Jan 31, 2017
2.3.0
Jan 30, 2017
2.2.0
Nov 14, 2016
2.1.0
Nov 04, 2016
2.0.0
Jun 01, 2016
2.0.0a1
May 31, 2016
1.8.0.dev0
May 31, 2016
Wheel compatibility matrix
Files in release
No dependencies