PyCharm
目前没有对 的内置支持flake8
。但是,flake8
可以配置为作为外部工具运行。
有时,特别是对于 Python 新手来说,并不是每个flake8
警告都是可以理解的,需要额外的说明。
我们最近偶然发现了这个Flake8Rules
项目,它试图用支持性的例子来详细描述每一个警告。
有没有一种方法可以结合 PyCharm,flake8
并Flake8Rules
完全显示静态代码分析警告以及附加描述或Flake8Rules
目录链接?
PyCharm
目前没有对 的内置支持flake8
。但是,flake8
可以配置为作为外部工具运行。
有时,特别是对于 Python 新手来说,并不是每个flake8
警告都是可以理解的,需要额外的说明。
我们最近偶然发现了这个Flake8Rules
项目,它试图用支持性的例子来详细描述每一个警告。
有没有一种方法可以结合 PyCharm,flake8
并Flake8Rules
完全显示静态代码分析警告以及附加描述或Flake8Rules
目录链接?
这绝对是可能的。
一种方法是使用命令行选项flake8
调整输出以--format
指定指向目录的 http(s) 链接Flake8Rules
:
--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”。
##分步说明
flake8
安装在当前的 Python 环境中##演示
现在,假设我们创建的这个test.py
文件有一些违规行为:
def f(a = 10):
return a*10
如果我们右键单击一个test.py
文件,选择External Tools -> flake8
,这是我们将获得的输出(注意每个警告的可点击链接):
现在,如有疑问,我们可以点击链接了解有关警告的更多详细信息。
这只是一种方法,很高兴听到是否有更简单或更好的方法来组合这些工具和项目。
今天我也面临这个问题,尽管@alecxe 的答案对一个项目设置有好处
如果你想全局设置 flake8 ,你可以按照下面的过程
程序 - flake8 可执行文件$PyInterpreterDirectory$的路径是放置当前项目的 Python 解释器的目录
参数 - 指定应检查哪些文件和文件夹$FilePath$
工作目录 - 项目根目录$ContentRoot$
致所有需要的人:
要在 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版本控制传递有变化的文件的位置注意:要从 virtualenv 获取 flake8,您可能需要指定完整路径,例如:
/z/your_virtual_envs/bin/flake8
我编写了一个库,提供 - 与 pycharm 的原生 flake8 集成。该库通过伪装成 pylint 可执行文件来工作。它接受 pylint 参数并将其转换为 flake8 对应项。同样,它将 flake8 输出转换为等效的 pylint 输出。
结果是原生 flake8 支持。