PyCharm
没有built-in support for flake8
at the moment。但是,可以将flake8
配置为作为外部工具运行。
有时候,特别是对于Python新手来说,并不是每个flake8
警告都是可以理解的,需要额外的澄清。
我们最近偶然发现了Flake8Rules
project,它试图用支持性的例子详细描述每一个警告。
是否有一种方法可以将PyCharm、flake8
和Flake8Rules
组合在一起,以显示静态代码分析警告,并提供额外的描述或指向Flake8Rules
目录的链接?
5条答案
按热度按时间xtfmy6hx1#
这绝对是有可能的。
一种方法是使用
--format
命令行选项调整flake8
输出,以指定指向Flake8Rules
目录的http(s)链接:问题是控制台或PyCharm输出窗口是否正确呈现链接。
幸运的是,我们可以使用插件来实现这一点--"Awesome Console"用于终端,"Console Link"用于输出窗口。
逐步说明
1.请确保在当前Python环境中安装了
flake8
1.安装“Awesome控制台”插件:
PyCharm Preferences -> Plugins -> Browser Repositories...
1.将“flake 8”配置为External Tool:
PyCharm Preferences -> Tools -> External Tools -> "+"
flake8
的路径以及要处理的所需目录/路径的$FilePath$
占位符:演示
现在,假设我们创建了这个
test.py
文件,但有一些违规:如果我们右键单击
test.py
文件,选择External Tools -> flake8
,这就是我们将要得到的输出(注意每个警告的可单击链接):现在,只要有疑问,我们就可以通过链接了解有关警告的更多详细信息。
这只是其中一种方法,如果有更简单或更好的方法来合并这些工具和项目,我会很乐意听到。
fykwrbwg2#
今天 我 也 面临 这个 问题 , 虽然@alecxe 答案 是 好 的 一 个 项目 设置
如果 要 全局 设置 flake8 , 可以 执行 以下 过程
1.确保 flake8 安装 在 您 的 项目 中
1.请 确保 在 pycharm 中 设置 了 virtualenv 路径
1.将 flake8 配置 为 外部 工具 转到 文件 〉 设置 〉 ( 工具 ) 〉 外部 工具 〉 ' + '
配置 路径
程序 - flake8 可 执行 文件 的 路径 * * $PyInterpreterDirectory $* * 是 当前 项目 的 Python 解释 器 所在 的 目录
参数 - 指定 应 检查 哪些 文件 和 文件 夹 * * $FilePath $* *
工作 目录 - 项目 根 目录 * * $ContentRoot $* *
vh0rcniy3#
致所有需要的人:
要在Pycharm中设置此类工具,请执行以下操作:
有关配置示例,请参见以下屏幕:
参数:
-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版本控制传递发生更改的文件的位置注意:要从virtualenv中获得flake8,您可能需要指定完整路径,如下所示:
/z/your_virtual_envs/bin/flake8
q7solyqu4#
我写了一个库,它提供了一种与pycharm的原生flake8集成。这个库的工作方式是伪装成一个pylint可执行文件。它接受pylint参数并将其转换成flake8的对应文件。同样地,它将flake8的输出转换成等价的pylint输出。
结果是原生flake8支持。
https://gitlab.com/ramast/flake8-for-pycharm/
9cbw7uwe5#
这是我使用的方法,我们基本上需要告诉flake8如何输出它的错误,并告诉pycharm如何解释它们。然后当一个文件改变时运行作业。
flake8
(假设已全局安装)--format="ERROR: %(path)s[%(row)d, %(col)d]: %(text)s (%(code)s)" $FilePath$
个$FilePath$
ERROR: $FILE_PATH$\[$LINE$, $COLUMN$\]: $MESSAGE$
1.现在,在“编辑器”〉“检查”下,确保“文件观察程序问题”已启用