I want to configure pylint as an external tool on my entire project directory for a python project that I'm working on. I've tried to use the repository as a module with __init__.py
and without, and its not working either way.
I'm having difficulty setting up pylint to run with PyCharm. I know that I should be running it as an external tool, however the settings confuse me.
The authoritative source on their documentation is broken, so I can't check that up either.
Because I didn't find a working ready-made setup, these are the settings I use in PyCharm CE 2018.1 on macOS:
1 -
pip install pylint
in your project virtualenv or globally2 - Add new external tool and configure:
Notice the required double quotes for the msg-template, and the escape chars for the output filters. The output filter allows to click on the file path and open the location in the IDE source editor.
Only missing feature would be the output filters to plot the lint descriptions directly into the source view, as is done with the builtin linter. No such feature at this time though.
A colleague pointed me towards pylint-pycharm on GitHub. It's a wrapper around pylint with output formatted for PyCharm. Here's how I set it up:
This creates
build/scripts-2.7/pylint-pycharm
Then, in PyCharm, create a new External Tool with these settings:
Now run it from Tools -> External Tools -> PyLintPyCharm. Each line of output will be hyperlinked to the relevant position in the source code.
A note on the previous answers. I was searching for a method to make PyCharm aware of the output syntax so I can directly jump to the file locations. That works without using additional tools.
Pylint can be configured to output messages in a specific format using the
msg-template
option in the pylintrc file or the CLI option--msg-template
.I set it to:
msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'
In the External Tools settings, the
Output filters:
can be set to$FILE_PATH$:$LINE$:$COLUMN$: .*
so PyCharm shows links to directly jump to the reported locations. This can be combined withoutput-format=colorized
so I get this: PyCharm does not recognize the column despite having it configured. But having the file and line is enough for me.At first install pylint with pip:
You have to open “Settings > Tools > External Tools” and press the “+” button at PyCharm.
Here are an example with good settings.
Thanks to information here, and updated documentation from PyCharm I've been able to get this to work nicely to also use the virtual environment for the project (ensuring that any packages can be deployed within the virtual environment and do not need to be deployed globally).
Taking what lkraider provided earlier but with slight modifications:
Ensure you install pylint within the virtual environment. Note, make sure that when you created the virtual environment you did not select "Inherit global site-packages". If you do then pylint will end up being globally and this will not work.
Add new external tool and configure. This is slightly different compared to what lkraider provided. For one I wanted it to look more like normal pylint output hence my msg-template (and Output filter) is a bit different. Each to their own. Second change is more critical one for executing pylint based on the virtual environment, that is the program parameter where I use $PyInterpreterDirectory$.
External tool for pylint
You can set up
pylint
to work with PyCharm by following the next steps:Install
pylint
:Locate your
pylint
installation folder:Open the PyCharm settings window with
File -> Settings
, then navigate toTools -> External Tools
in the sidebar. (Or search "external tools")Setup an external tool by clicking on the + sign and filling the fields accordingly. In
Program
use the path you got when runningwhich pylint
, for the other values you can use the same of the image.Run
pylint
fromTools -> External Tools -> pylint
:Look your output in the PyCharm terminal
For more details, refer to Pylinting with PyCharm.
Update:
If you want to use
pylint
to check your whole project or a particular file or directory, you can right click on your project root, file or directory, thenExternal Tools -> pylint
as shown below.