如何让pylint、flake8或pycodestyle自动纠错?

How to make pylint, flake8 or pycodestyle to automatically correct errors?

我已经在 Ubuntu 18.04 上使用的虚拟机上正确安装了上述所有模块。当 运行 它们中的任何一个在特定脚本或文件夹上时,它们会正确识别样式错误并将它们输出到控制台中。例如:

(venv) .../src$ python3.6 -m flake8
./free_prediction.py:8:1: E303 too many blank lines (5)
./free_prediction.py:8:28: E231 missing whitespace after ','
./free_prediction.py:10:5: E225 missing whitespace around operator
./free_prediction.py:12:3: E225 missing whitespace around operator
./free_prediction.py:15:13: E225 missing whitespace around operator

但是,代码中仍然存在相同样式的错误。如何让它们自动更正?

AFAIK,none 这些 linting 工具将修复它们识别的样式问题。但是,有几种代码格式化工具可以自动修复许多已标记的样式错误。

一些更流行的 Python 代码格式化工具值得一试:blackautopep8yapf。 (它们都在 PyPI 上,可以通过 pip 安装)

更多信息:

您正在寻找的解决方案称为“auto-formatter。”

您提到的工具仅用于检查代码的样式


查看此博客 post 以全面比较 black、autopep8 和 yapf 与实际 Python 片段。

https://medium.com/3yourmind/auto-formatters-for-python-8925065f9505

Flake8 的吸引力越来越大。

因此,自 2019 年以来情况发生了一些变化。我认为值得注意的是,除了 pycodestyle 之外,现在还有一个修复 flake8 错误(例如 McCane 复杂性)的项目错误(PEP8):