PyCharm中的描述性flake8错误

l7wslrjt  于 2022-11-08  发布在  PyCharm
关注(0)|答案(5)|浏览(304)

PyCharm没有built-in support for flake8 at the moment。但是,可以将flake8配置为作为外部工具运行。
有时候,特别是对于Python新手来说,并不是每个flake8警告都是可以理解的,需要额外的澄清。
我们最近偶然发现了Flake8Rules project,它试图用支持性的例子详细描述每一个警告。
是否有一种方法可以将PyCharm、flake8Flake8Rules组合在一起,以显示静态代码分析警告,并提供额外的描述或指向Flake8Rules目录的链接?

xtfmy6hx

xtfmy6hx1#

这绝对是有可能的。
一种方法是使用--format命令行选项调整flake8输出,以指定指向Flake8Rules目录的http(s)链接:

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

问题是控制台或PyCharm输出窗口是否正确呈现链接。
幸运的是,我们可以使用插件来实现这一点--"Awesome Console"用于终端,"Console Link"用于输出窗口。

逐步说明

1.请确保在当前Python环境中安装了flake8
1.安装“Awesome控制台”插件:

  • 转到PyCharm Preferences -> Plugins -> Browser Repositories...
  • 找到“Awesome Console”并安装(需要重新启动PyCharm):

1.将“flake 8”配置为External Tool

  • 转到PyCharm Preferences -> Tools -> External Tools -> "+"
  • 配置flake8的路径以及要处理的所需目录/路径的$FilePath$占位符:

演示
现在,假设我们创建了这个test.py文件,但有一些违规:

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

如果我们右键单击test.py文件,选择External Tools -> flake8,这就是我们将要得到的输出(注意每个警告的可单击链接):

现在,只要有疑问,我们就可以通过链接了解有关警告的更多详细信息。
这只是其中一种方法,如果有更简单或更好的方法来合并这些工具和项目,我会很乐意听到。

fykwrbwg

fykwrbwg2#

今天 我 也 面临 这个 问题 , 虽然@alecxe 答案 是 好 的 一 个 项目 设置
如果 要 全局 设置 flake8 , 可以 执行 以下 过程
1.确保 flake8 安装 在 您 的 项目 中
1.请 确保 在 pycharm 中 设置 了 virtualenv 路径
1.将 flake8 配置 为 外部 工具 转到 文件 〉 设置 〉 ( 工具 ) 〉 外部 工具 〉 ' + '
配置 路径

程序 - flake8 可 执行 文件 的 路径 * * $PyInterpreterDirectory $* * 是 当前 项目 的 Python 解释 器 所在 的 目录
参数 - 指定 应 检查 哪些 文件 和 文件 夹 * * $FilePath $* *
工作 目录 - 项目 根 目录 * * $ContentRoot $* *

vh0rcniy

vh0rcniy3#

致所有需要的人:

  • 使用远程python解释器和SSH对文件运行
  • 谁想要flake8在关于git状态的更改文件
  • 他们想毫无痛苦地通过任何其他的争论

要在Pycharm中设置此类工具,请执行以下操作:

File | Settings | Tools | Remote SSH External Tools

有关配置示例,请参见以下屏幕:

参数:-c "flake8 $(git status -s | grep -E '\.py$' | cut -c 4-) --max-line-lengt=120"
对我来说,最关键的是:
1.直接使用/bin/bash而不是flake8
1.用-c "whatever args subcommands etc I need here"填充参数部分
供参考:

***$(git status -s | grep -E '\.py$' | cut -c 4-)**负责根据git版本控制传递发生更改的文件的位置

q7solyqu

q7solyqu4#

我写了一个库,它提供了一种与pycharm的原生flake8集成。这个库的工作方式是伪装成一个pylint可执行文件。它接受pylint参数并将其转换成flake8的对应文件。同样地,它将flake8的输出转换成等价的pylint输出。
结果是原生flake8支持。
https://gitlab.com/ramast/flake8-for-pycharm/

9cbw7uwe

9cbw7uwe5#

这是我使用的方法,我们基本上需要告诉flake8如何输出它的错误,并告诉pycharm如何解释它们。然后当一个文件改变时运行作业。

  • 安装“文件监视器”插件(如果尚未安装)
  • 单击“工具”〉“文件监视器”下的“+”
  • 创建如下所示的代码。我们基本上是告诉flake8如何格式化它的输出,以及pycharm应该如何解释它(请参见此处和此处)

  • flake8(假设已全局安装)
  • --format="ERROR: %(path)s[%(row)d, %(col)d]: %(text)s (%(code)s)" $FilePath$
  • $FilePath$
  • ERROR: $FILE_PATH$\[$LINE$, $COLUMN$\]: $MESSAGE$

1.现在,在“编辑器”〉“检查”下,确保“文件观察程序问题”已启用

相关问题