Как сделать pylint, flake8 или pycodestyle для автоматического исправления ошибок?

Я правильно установил все вышеупомянутые модули на ВМ, которую я использую в 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

Тем не менее, те же ошибки стиля сохраняются в коде. Как я могу сделать так, чтобы они были автоматически исправлены?

3 ответа

Решение

AFAIK, ни один из этих инструментов для рисования не устранит проблемы стиля, которые они идентифицируют. Тем не менее, есть несколько инструментов форматирования кода, которые автоматически исправят многие ошибки стиля, которые были помечены.

Вот некоторые из наиболее популярных инструментов форматирования кода Python: black, autopep8, а также yapf, (все они на PyPI и устанавливаются через pip)

Больше информации:

Решение, которое вы ищете вместо этого, называется "автоформатором".

Эти библиотеки предназначены только для проверки стиля.


См. Это сообщение в блоге для подробного сравнения black, autopep8 и yapf с реальными фрагментами Python.

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

Интерес Flake8 растет.

Следовательно, ситуация немного изменилась с 2019 года. Считаю достойным внимания, что теперь помимо ошибок (PEP8) есть еще и проект по исправлению ошибок (например, сложности Маккейна):

Другие вопросы по тегам