When comparing pyflakes vs Pylint, the Slant community recommends Pylint for most people. In the question“What are the best Python code linters?” Pylint is ranked 1st while pyflakes is ranked 6th. The most important reason people chose Pylint is:
Pylint gives very detailed reports of your code. It even provides ASCII tables with detailed statistics about the results. Data for the previous and current code execution is also available with the difference, allowing you to easily see the progress that you have made.
Ranked in these QuestionsQuestion Ranking
Pro Very fast
Because it looks for errors from a small group of possible mistakes, pyflakes is very fast. When dealing with many lines of code this is a very useful feature. When used in conjunction with an IDE, it checks the code as it's being edited.
Pro Easy installation
The installation process for pyflakes is as easy as it can be. Can be installed with
pip and you are ready to go.
Pro Full, detailed reports
Pylint gives very detailed reports of your code. It even provides ASCII tables with detailed statistics about the results.
Data for the previous and current code execution is also available with the difference, allowing you to easily see the progress that you have made.
Pro Works with Vim
Through the plugin ALE.
Pro Easily enable or disable a particular message
Each check in pylint has a unique id, so you can choose to disable or enable that particular message in subsequent executions. Just run
-disable-msg and the message id.
Pro Fine-grained control
In addition to the ability to enable or disable warnings, Pylint also gives the developer a great degree of control through command line options. These range from regular expressions to enforce naming conventions to various settings to watch for complexity issues.
Pylint has a configuration file which can be tweaked to choose what kind of warning messages you want. This way you can choose to opt out of receiving warnings that you may consider useless.
Pro Great documentation
The documentation is thorough and complete. They provide information for any kind of warning that Pylint may raise and how to deal with them, enable/disable them and how to interpret them.
Con Not very powerful
Pyflakes only checks for names that are defined but never used or names that are redefined without being used. It also does not have command line options that offer a degree of control for the tests that you are running.
Con May need to compile from source to install it correctly
There are some dependencies from Logilab that Pylint needs. They can easily be found in the README but trying to install them with easy_install can yield some problems with unresolved dependencies.