Flake8-For-Pycharm
This is a plugin for Flake8 that will emulate pylint json output.
Installation
.. code-block:: bash
pip install flake8-for-pycharm
flake8 will be automaitcally installed in the same enviroment.
To validate installation run flake8_pycharm.py --help-msg=E1101
.
Output should look like that:
.. code-block::
:no-member (E1101): *%s %r has no %r member%s*
Used when a variable is accessed for an unexistent member. This message
belongs to the typecheck checker.
pylint will also be installed because pycharm plugin refuses to work if it's not installed.
Usage
- Locate the file
flake8_pycharm.py
in your python environment (in linux use command which flake8_pycharm.py
) - In Pycharm go to File -> Settings -> Pylint (If you can't find it, go to Settings -> Plugins and install pylint plugin)
- In "Path to Pylint executable", provide path to "flake8_pycharm.py" script
- [ Optional ] In path to pylintrc, provide path to your flake8 configuration file
- Do not put anything in the "Arguments" field or script won't work.
- This is it, youa re basically done.
Pylint support
If you want support for both pylint and flake8, you'll need to add --with-pylint
parameter.
In PyCharm, add this value in the Arguments
field in pylint settings page.
How does it work?
Initially Pycharm call pylint with the following arguments
.. code-block:: bash
pylint --help-msg=E1101
Once this command has succeeded, it assumes that pylint is installed and starts using it with command like that.
.. code-block:: bash
pylint --rcfile=pylintrc -f json my_file.py
The flake8_pycharm.py
script understand those pylint arguments,
query flake8 accordingly and return result in same format that pylint produces.
Troubleshooting
If you did everything correctly but pycharm kept complaining about pylint being not installed, you might have to install it anyway.
It's a bug reported by a colleague but I wasn't able to reproduce it locallay.
If you received errors from pycharm, you can try to run the command manually to see if it's producing errors.
.. code-block:: bash
flake8_pycharm.py --rcfile=<your flake8 configuration> -f json my_file.py