PyCharm 中的描述性 flake8 错误
Descriptive flake8 errors in PyCharm
PyCharm
没有 built-in support for flake8
at the moment。但是,flake8
可以配置为 运行 作为外部工具。
有时候,尤其是对于 Python 新手来说,并非每个 flake8
警告都是可以理解的,需要额外说明。
我们最近偶然发现了 Flake8Rules
project,它试图通过支持示例详细描述每一个警告。
有没有办法将 PyCharm、flake8
和 Flake8Rules
组合在一起,使静态代码分析警告与 Flake8Rules
目录的附加说明或链接一起显示?
绝对有可能。
一种方法是使用 the --format
command-line option 调整 flake8
输出以将 http(s) links 指定到 Flake8Rules
目录:
--format='%(path)s:%(row)d,%(col)d:%(code)s:%(text)s:https://lintlyci.github.io/Flake8Rules/rules/%(code)s.html'
问题在于控制台或 PyCharm 输出 window 无法正确呈现 link。
幸运的是,我们可以使用插件来做到这一点 - "Awesome Console" for the terminal and "Console Link" 用于输出 window.
分步说明
- 确保在当前 Python 环境中安装
flake8
- 安装“Awesome Console”插件:
- 转到
PyCharm Preferences -> Plugins -> Browser Repositories...
- 找到“Awesome Console”并安装(PyCharm需要重启):
- 将“flake8”配置为 External Tool:
- 转到
PyCharm Preferences -> Tools -> External Tools -> "+"
- 配置
flake8
的路径以及 $FilePath$
占位符,用于要处理的 directory/path:
演示
现在,假设我们创建的这个 test.py
文件有一些违规行为:
def f(a = 10):
return a*10
如果我们右键单击 test.py
文件 select External Tools -> flake8
,这就是我们将要获得的输出(请注意可单击的 links每次警告):
现在,每当有疑问时,我们都可以按照 link 了解有关警告的更多详细信息。
这只是一种方法,如果有更简单或更好的方法来组合这些工具和项目,我们将很高兴听到。
致所有需要的人:
- 运行 使用 远程 python 解释器和 SSH
针对文件
- 谁想要 只 flake8 在 上更改了关于 git 状态
的文件
- 想要传递任何其他 flake8 参数而不痛苦
要在 Pycharm 中设置那种工具:
File | Settings | Tools | Remote SSH External Tools
示例配置见下图:
参数:-c "flake8 $(git status -s | grep -E '\.py$' | cut -c 4-) --max-line-lengt=120"
就我而言,关键是:
- 直接使用
/bin/bash
代替flake8
- 通过
-c "whatever args subcommands etc I need here"
填充参数部分
供参考:
$(git status -s | grep -E '\.py$' | cut -c 4-)
负责根据 git 版本控制 传递更改文件的位置
- https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000610520-Remote-SSH-external-tool-run-multiple-commands-once
注意: 要从 virtualenv 获取 flake8,您可能需要指定完整路径,例如:
/z/your_virtual_envs/bin/flake8
今天我也遇到了这个问题,尽管@alecxe 的回答对一个项目设置很好
如果你想全局设置flake8,可以按照下面的流程
- 确保您的项目中安装了 flake8
- 确保在 pycharm
中设置了 virtualenv 路径
- 将 flake8 配置为外部工具
转到文件>设置>(工具)>外部工具>'+'
配置路径
计划-
flake8可执行文件的路径$PyInterpreterDirectory$是当前项目的Python解释器所在的目录
参数 - 指定应检查的文件和文件夹 $FilePath$
工作目录-项目根目录$ContentRoot$
我编写了一个库,提供 - 一种与 pycharm 的原生 flake8 集成。该库通过伪装成一个 pylint 可执行文件来工作。它接受 pylint 参数并将其转换为 flake8 对应项。同样,它将 flake8 输出转换为等效的 pylint 输出。
结果是原生 flake8 支持。
PyCharm
没有 built-in support for flake8
at the moment。但是,flake8
可以配置为 运行 作为外部工具。
有时候,尤其是对于 Python 新手来说,并非每个 flake8
警告都是可以理解的,需要额外说明。
我们最近偶然发现了 Flake8Rules
project,它试图通过支持示例详细描述每一个警告。
有没有办法将 PyCharm、flake8
和 Flake8Rules
组合在一起,使静态代码分析警告与 Flake8Rules
目录的附加说明或链接一起显示?
绝对有可能。
一种方法是使用 the --format
command-line option 调整 flake8
输出以将 http(s) links 指定到 Flake8Rules
目录:
--format='%(path)s:%(row)d,%(col)d:%(code)s:%(text)s:https://lintlyci.github.io/Flake8Rules/rules/%(code)s.html'
问题在于控制台或 PyCharm 输出 window 无法正确呈现 link。
幸运的是,我们可以使用插件来做到这一点 - "Awesome Console" for the terminal and "Console Link" 用于输出 window.
分步说明
- 确保在当前 Python 环境中安装
flake8
- 安装“Awesome Console”插件:
- 转到
PyCharm Preferences -> Plugins -> Browser Repositories...
- 找到“Awesome Console”并安装(PyCharm需要重启):
- 将“flake8”配置为 External Tool:
- 转到
PyCharm Preferences -> Tools -> External Tools -> "+"
- 配置
flake8
的路径以及$FilePath$
占位符,用于要处理的 directory/path:
演示
现在,假设我们创建的这个 test.py
文件有一些违规行为:
def f(a = 10):
return a*10
如果我们右键单击 test.py
文件 select External Tools -> flake8
,这就是我们将要获得的输出(请注意可单击的 links每次警告):
现在,每当有疑问时,我们都可以按照 link 了解有关警告的更多详细信息。
这只是一种方法,如果有更简单或更好的方法来组合这些工具和项目,我们将很高兴听到。
致所有需要的人:
- 运行 使用 远程 python 解释器和 SSH 针对文件
- 谁想要 只 flake8 在 上更改了关于 git 状态 的文件
- 想要传递任何其他 flake8 参数而不痛苦
要在 Pycharm 中设置那种工具:
File | Settings | Tools | Remote SSH External Tools
示例配置见下图:
参数:-c "flake8 $(git status -s | grep -E '\.py$' | cut -c 4-) --max-line-lengt=120"
就我而言,关键是:
- 直接使用
/bin/bash
代替flake8
- 通过
-c "whatever args subcommands etc I need here"
填充参数部分
供参考:
$(git status -s | grep -E '\.py$' | cut -c 4-)
负责根据 git 版本控制 传递更改文件的位置
- https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000610520-Remote-SSH-external-tool-run-multiple-commands-once
注意: 要从 virtualenv 获取 flake8,您可能需要指定完整路径,例如:
/z/your_virtual_envs/bin/flake8
今天我也遇到了这个问题,尽管@alecxe 的回答对一个项目设置很好
如果你想全局设置flake8,可以按照下面的流程
- 确保您的项目中安装了 flake8
- 确保在 pycharm 中设置了 virtualenv 路径
- 将 flake8 配置为外部工具 转到文件>设置>(工具)>外部工具>'+'
配置路径
计划- flake8可执行文件的路径$PyInterpreterDirectory$是当前项目的Python解释器所在的目录
参数 - 指定应检查的文件和文件夹 $FilePath$
工作目录-项目根目录$ContentRoot$
我编写了一个库,提供 - 一种与 pycharm 的原生 flake8 集成。该库通过伪装成一个 pylint 可执行文件来工作。它接受 pylint 参数并将其转换为 flake8 对应项。同样,它将 flake8 输出转换为等效的 pylint 输出。
结果是原生 flake8 支持。