Descriptive flake8 errors in PyCharm

前端 未结 4 655
太阳男子
太阳男子 2021-02-02 12:52

PyCharm does not have a built-in support for flake8 at the moment. But, flake8 can be configured to run as an external tool.

Sometimes, especia

相关标签:
4条回答
  • 2021-02-02 13:16

    Today i Also face this problem although @alecxe answer is good for one project settings

    If you want to set flake8 globally , you can follow below process

    1. make sure flake8 installed in your project
    2. make sure virtualenv path set in pycharm
    3. configure flake8 as external tool goto file> settings> External Tools > '+'

    configure the path

    Program - The path to the flake8 executable $PyInterpreterDirectory$ is a directory where the Python interpreter of the current project is placed

    Argument- Specifies what files and folders should be checked $FilePath$

    Working directory - Project root directory $ContentRoot$

    0 讨论(0)
  • 2021-02-02 13:19

    I've wrote a library that offer - kind of native flake8 integration with pycharm. The library work by pretending to be a pylint executable. It accept pylint arguments and translate it to flake8 counterpart. Similarly it translate flake8 output to equivalent pylint output.

    Result is native flake8 support.

    https://gitlab.com/ramast/flake8-for-pycharm/

    0 讨论(0)
  • 2021-02-02 13:30

    It is definitely possible.

    One approach would be to adjust the flake8 output using the --format command-line option to specify http(s) links to the Flake8Rules catalog:

    --format='%(path)s:%(row)d,%(col)d:%(code)s:%(text)s:https://lintlyci.github.io/Flake8Rules/rules/%(code)s.html'
    

    The problem then is for the console or PyCharm output window to render the links properly.

    Fortunately, we can do that using the plugins - "Awesome Console" for the terminal and "Console Link" for the output window.


    ##Step-by-step Instructions

    1. make sure to have flake8 installed in the current Python environment
    2. install "Awesome Console" plugin:
    • go to PyCharm Preferences -> Plugins -> Browser Repositories...
    • find "Awesome Console" and install (PyCharm restart required):
    1. configure "flake8" as an External Tool:
    • go to PyCharm Preferences -> Tools -> External Tools -> "+"
    • configure the path to flake8 as well as $FilePath$ placeholder for the desired directory/path to be processed:

    ##Demo

    Now, let's say we have created this test.py file with a few violations:

    def f(a = 10):
      return a*10
    

    If we right-click on a test.py file, select External Tools -> flake8, this is the output we are going to get (note the clickable links for every warning):

    Now, whenever in doubt, we can follow the link for additional details about a warning.

    This is just one way to do it, would be happy to hear if there is an easier or better way to combine these tools and projects.

    0 讨论(0)
  • 2021-02-02 13:36

    To all the folks, who need:

    • run against files using a remote python interpreter with SSH
    • who want only flake8 on changed files regarding git status
    • who want to pass any other flake8 arguments without pain

    To setup that kind of tool in Pycharm:

    File | Settings | Tools | Remote SSH External Tools
    

    see below screen for example configuration:

    Arguments: -c "flake8 $(git status -s | grep -E '\.py$' | cut -c 4-) --max-line-lengt=120"

    In my case the crucial thing was:

    1. use /bin/bash instead of flake8 directly
    2. Filling the arguments section by -c "whatever args subcommands etc I need here"

    For reference:

    • $(git status -s | grep -E '\.py$' | cut -c 4-) is responsible for passing locations of files with changes according to git version control
    • https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000610520-Remote-SSH-external-tool-run-multiple-commands-once

    NOTE: to have your flake8 from virtualenv you might want to specify full path like: /z/your_virtual_envs/bin/flake8

    0 讨论(0)
提交回复
热议问题