Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Integration of pep8 and pyflakes checkers for python files in SublimeText 2 editor (Linux/MacOSX only)
Branch: master


Python PEP-8 and PyFlakes checker for SublimeText 2 editor

This project is a plugin for SublimeText 2 text editor. It checks all python files you opening and editing through two popular Python checkers - pep8 and PyFlakes.


Go to your Packages dir (Sublime Text 2 -> Preferences -> Browse Packages). Clone this repository into Packages subdirectory:

git clone git://

Go to sublimetext_python_checker/ and create file with list of your preferred checkers:

    CHECKERS = [('/Users/vorushin/.virtualenvs/checkers/bin/pep8', []),
                ('/Users/vorushin/.virtualenvs/checkers/bin/pyflakes', [])]

First parameter is path to command, second - optional list of arguments. If you want to disable line length checking in pep8, set second parameter to ['--ignore=E501'].

You can also set syntax checkers using sublimetext settings (per file, global, per project, ...):

            ["/usr/bin/pep8", ["--ignore=E501,E128,E221"] ]

Both "CHECKERS local_settings" and sublime text settings will be used, but sublime text settings are prefered. (using syntax checker binary name)

Restart SublimeText 2 and open some *.py file to see check results. You can see additional information in python console of your editor (go View -> Show Console).

Why not sublimelint

Before creating this project I used sublimelint, which is multilanguage checker/linter. I described pros and cons of both below.


  • can't use your Python version or your virtualenv
  • don't check with pep8
  • do checks on every edit
  • do checks for Python (derivative of pyflakes), PHP, Perl, Ruby
  • works on Windows/Linux/MacOSX


  • can use your version of Python and your virtualenv
  • do checks only on opening and saving files
  • works only on Linux and Mac OS X
  • checks only Python files
  • checks with pep8 and pyflakes
  • all this in a few screens of code
Something went wrong with that request. Please try again.