Skip to content
on the fly Python checking in Vim with PyFlakes
Vim script Python
Branch: master
Clone or download

Latest commit

kevinw Merge pull request #77 from matthew-brett/allow-py23-choice
MRG: allow choice of Python version in vimrc
Latest commit 640f06c Dec 18, 2017


Type Name Latest commit message Commit time
Failed to load latest commit information.


WARNING: DEPRECATED! pyflakes-vim is officially deprecated!

The features of pyflakes-vim have been merged into other more widely-used and updated tools.

If you're using vim 8.0 or neovim, try ALE and flakes8 instead.

On older vims you can try Syntastic.


A Vim plugin for checking Python code on the fly.

PyFlakes catches common Python errors like mistyping a variable name or accessing a local before it is bound, and also gives warnings for things like unused imports.

pyflakes-vim uses the output from PyFlakes to highlight errors in your code. To locate errors quickly, use quickfix commands like :cc.

Make sure to check for the latest updates.

Quick Installation

  1. Make sure your .vimrc has:

    filetype on            " enables filetype detection
    filetype plugin on     " enables filetype specific plugins
  2. Download the latest release.

  3. If you're using pathogen, unzip the contents of into its own bundle directory, i.e. into ~/.vim/bundle/pyflakes-vim/.

    Otherwise unzip pyflakes.vim and the pyflakes directory into ~/.vim/ftplugin/python (or somewhere similar on your runtime path that will be sourced for Python files).


Some tiny tests with:

pip install -r test-requirements.txt
py.test ftplugin/python/

Running from source

If you're running pyflakes-vim "from source," you'll need the PyFlakes library on your PYTHONPATH somewhere. (It is included in the zipfile.) I recommend getting the PyFlakes fork, which retains column number information, giving more specific error locations.


git clone --recursive git://

or use the PyFlakes submodule:

git clone git://
cd pyflakes-vim
git submodule init
git submodule update


Set this option in your vimrc file to disable quickfix support:

let g:pyflakes_use_quickfix = 0

The value is set to 1 by default.

Pyflakes can use Python 2 or Python 3 compiled into Vim. If you have both, you can ask Pyflakes to prefer one or the other, with this in your vimrc:

let g:pyflakes_prefer_python_version = 3


let g:pyflakes_prefer_python_version = 2

Pyflakes will chose Python 2 by default, if you have both. If you prefer a version that you don't have, Pyflakes will quietly fall back to the version that you do have.


  • signs support (show warning and error icons to left of the buffer area)
  • configuration variables
  • parse or intercept useful output from the warnings module


Please see for a history of all changes.

You can’t perform that action at this time.