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 支持。