Pylint not running as expected in VScode
Question:
When I am running via shell a pylint
:
$ pylint decorator.py
No config file found, using default configuration
************* Module decorator
C: 7, 0: Unnecessary parens after 'print' keyword (superfluous-parens)
C: 15, 0: Unnecessary parens after 'print' keyword (superfluous-parens)
C: 1, 0: Missing module docstring (missing-docstring)
C: 4, 0: Missing function docstring (missing-docstring)
C: 6, 4: Missing function docstring (missing-docstring)
C: 14, 0: Missing function docstring (missing-docstring)
However, as it can be seen below, these warning do not come up in VSCode
… despite the fact that some basic checking is indeed performed as it shown in the next picture where I have removed a blank line:
Answers:
Assuming you have configured Python’s Extension correctly and you have Pylint installed,
VSCode’s Python Extension will do minimal checking by default if you do not provide a Pylint configuration option.
Simply enter "python.linting.pylintUseMinimalCheckers": false,
into your .vscode/settings.json
to force this off.
This is how mine looks:
{
"autoDocstring.docstringFormat": "numpy",
"editor.minimap.enabled": false,
"editor.selectionClipboard": false,
"python.pythonPath": "/home/jim/anaconda3/envs/dipoleDisplay",
"window.zoomLevel": 0,
"terminal.integrated.rendererType": "dom",
"python.linting.pylintUseMinimalCheckers": false,
}
I had a similar problem where flake8 worked in VSCode but pylint didn’t. Here are all the steps I had to check for pylint to start working:
-
Your .vscodesettings.json file enables linting by pylint
(this can be hand edited or by running these command palette commands: Python: Enable Linting and Python: Select Linter)
“python.linting.enabled”: true
“python.linting.pylintEnabled”: true
-
from the command line (while in virtual environment) confirming that pylint and pylint-django are installed.
pip show pylint
pip show pylint-django
-
Add a .pylintrc file to your root directory that includes these lines.
[MASTER]
load-plugins=pylint_django
(NOTE: you can replace this pylintrc file with the following line in settings.json.)
"python.linting.pylintArgs": ["--load-plugins", "pylint_django"]
For more info about using pylint in VSCode, see https://code.visualstudio.com/docs/python/linting#_pylint
For more info about the pylintrc file, see https://docs.pylint.org/en/1.6.0/run.html#command-line-options
I’m add json to my vscode project folder settings:
{
...
"pylint.path": [
"/home/username/.local/bin/pylint"
],
"pylint.args": [
"--rcfile=api/.pylintrc"
],
...
}
It working for me. My python files and .pylintrc file placed in ./api/
folder, which is subfolder of my project’s root.
When I am running via shell a pylint
:
$ pylint decorator.py
No config file found, using default configuration
************* Module decorator
C: 7, 0: Unnecessary parens after 'print' keyword (superfluous-parens)
C: 15, 0: Unnecessary parens after 'print' keyword (superfluous-parens)
C: 1, 0: Missing module docstring (missing-docstring)
C: 4, 0: Missing function docstring (missing-docstring)
C: 6, 4: Missing function docstring (missing-docstring)
C: 14, 0: Missing function docstring (missing-docstring)
However, as it can be seen below, these warning do not come up in VSCode
… despite the fact that some basic checking is indeed performed as it shown in the next picture where I have removed a blank line:
Assuming you have configured Python’s Extension correctly and you have Pylint installed,
VSCode’s Python Extension will do minimal checking by default if you do not provide a Pylint configuration option.
Simply enter "python.linting.pylintUseMinimalCheckers": false,
into your .vscode/settings.json
to force this off.
This is how mine looks:
{
"autoDocstring.docstringFormat": "numpy",
"editor.minimap.enabled": false,
"editor.selectionClipboard": false,
"python.pythonPath": "/home/jim/anaconda3/envs/dipoleDisplay",
"window.zoomLevel": 0,
"terminal.integrated.rendererType": "dom",
"python.linting.pylintUseMinimalCheckers": false,
}
I had a similar problem where flake8 worked in VSCode but pylint didn’t. Here are all the steps I had to check for pylint to start working:
-
Your .vscodesettings.json file enables linting by pylint
(this can be hand edited or by running these command palette commands: Python: Enable Linting and Python: Select Linter)“python.linting.enabled”: true
“python.linting.pylintEnabled”: true
-
from the command line (while in virtual environment) confirming that pylint and pylint-django are installed.
pip show pylint
pip show pylint-django
-
Add a .pylintrc file to your root directory that includes these lines.
[MASTER]
load-plugins=pylint_django
(NOTE: you can replace this pylintrc file with the following line in settings.json.)
"python.linting.pylintArgs": ["--load-plugins", "pylint_django"]
For more info about using pylint in VSCode, see https://code.visualstudio.com/docs/python/linting#_pylint
For more info about the pylintrc file, see https://docs.pylint.org/en/1.6.0/run.html#command-line-options
I’m add json to my vscode project folder settings:
{
...
"pylint.path": [
"/home/username/.local/bin/pylint"
],
"pylint.args": [
"--rcfile=api/.pylintrc"
],
...
}
It working for me. My python files and .pylintrc file placed in ./api/
folder, which is subfolder of my project’s root.