Наведите порядок в своей кодовой базе с помощью этого простого в использовании инструмента командной строки.
Инструмент линтинга — это ценный ресурс, который может помочь вам обнаружить ошибки и несоответствия в вашем коде.
Flake8 — один из самых популярных инструментов линтинга для Python. Он выявляет ошибки синтаксиса и форматирования в вашем коде, а также другие проблемы, такие как неиспользуемый импорт. Он очень гибкий, потому что, несмотря на то, что у него есть правила по умолчанию, вы можете изменить их или добавить к ним, чтобы они соответствовали вашим требованиям.
Вы также можете настроить запуск Flake8 при сохранении обновлений кода с помощью VS Code. Все эти функции делают его ценным инструментом при написании программ на Python.
Установка Flake8
Выполните следующие шаги, чтобы установить Flake8 в вашей среде разработки. Вам может понадобиться установить Пип на свой компьютер первый.
- Запустите команду ниже в своем терминале, чтобы установить Flake8:
pip установить flake8
- Убедитесь, что Flake8 установлен, выполнив следующую команду:
flake8 --версия
- Если Flake8 установлен правильно, вы должны увидеть вывод, подобный следующему:
4.0.1 (маккейб: 0.6.1, пикодстиль: 2.8.0, пифлексы: 2.4.0) CPython 3.9.13на
линукс
После того, как вы успешно установили Flake8, вы можете начать его использовать.
Использование Flake8 для анализа кода Python
Чтобы понять, как использовать Flake8, начните со следующего кода. В нем есть пара преднамеренных ошибок. Скопируйте его в файл с именем приветствие.py.
дефприветствие(имя):
Распечатать("Привет, " + имя)
приветствие("Алиса")
приветствие("Боб")
Запуск Flake8 в одном файле
Синтаксис запуска Flake8 на одном файле следующий.
flake8 путь/к/file.py
В этом примере перейдите в каталог, содержащий файл greting.py, и выполните следующую команду.
приветствие flake8.py
Flake8 должен вернуть следующее сообщение, показывающее, что произошла ошибка отступа.
приветствие.py:5:1: Е999Ошибка отступа: непредвиденныйотступ
Этот вывод указывает, что строка 5 имеет ненужный отступ. К исправить эту ошибку отступа, вам нужно убрать пробел с начала этой строки.
дефприветствие(имя):
Распечатать("Привет, " + имя)
приветствие("Алиса")
приветствие("Боб")
Теперь при запуске Flake8 вы получите следующие предупреждения.
приветствие.py:4:1: Е305ожидал 2 пустойлиниипослесортилифункцияопределение, найденный 1
приветствие.py:5:16: W292нетновая линиявконецизфайл
Этот вывод указывает на следующие проблемы:
- В строке 4 должны быть две пустые строки после определения функции приветствия, но там только одна.
- В строке 5 должна быть новая строка в конце файла.
Как только вы исправите эти проблемы, flake8 не должен возвращать никаких сообщений.
До сих пор мы анализировали только один файл, но в большинстве случаев вам потребуется проанализировать несколько файлов.
Запуск Flake8 на нескольких файлах
Скажи, что у тебя есть другой test_greeting.py который содержит следующий код:
от приветствие Импортировать приветствие
дефtest_greet():
утверждать приветствие("Алиса") == — Привет, Алиса!
Чтобы проанализировать эти два файла, выполните следующую команду.
flake8 приветствие.py test_greeting.py
Этот метод работает, но если у вас более двух файлов, ввод имен файлов может быть утомительным и подверженным ошибкам.
Более эффективно использовать следующую команду для анализа всех файлов в текущем каталоге:
чешуйка8 .
Понимание ошибок и предупреждений Flake8
Flake8 сообщает о двух типах проблем:
- Ошибки. Ошибка указывает на синтаксическую или структурную проблему, из-за которой ваш код не работает, как ошибка отступа из примера Greeting.py.
- Предупреждения. Предупреждение указывает на возможную проблему или нарушение рекомендаций по стилю PEP 8, например предупреждение «Нет новой строки в конце файла» из примера Greeting.py.
Некоторые из распространенных ошибок и предупреждений:
- E101: отступ содержит смешанные пробелы и табуляции.
- E302: ожидаемо 2 пустые строки, найдено 0.
- E999 IndentationError: неожиданный отступ.
- W291: конечный пробел.
- E501: слишком длинная строка (максимум 79 символов).
- F401: модуль импортирован, но не используется.
Когда вы запускаете Flake8, он выводит сообщение, подобное показанному выше, с номером строки и расположением кода, на которое ссылается сообщение. Это поможет вам узнать, где именно в вашем коде есть проблемы, что сэкономит вам время на отладку.
Настройка Flake8
Для некоторых проектов правила Flake8 могут быть слишком жесткими. В этих случаях Flake8 позволяет настроить его и настроить его поведение в соответствии с вашими требованиями.
Вы можете указать параметры конфигурации, такие как:
- Игнорирование определенных ошибок или предупреждений.
- Установка максимальной длины строки.
- Указание дополнительных правил.
Для демонстрации создайте файл конфигурации с именем setup.cfg. Вы также можете добавить параметры конфигурации в файл с именем tox.ini или .flake8.
В этом файле начните с создания раздела flake8 следующим образом:
[флейк8]
Затем добавьте параметры, которые вы хотите настроить:
[флейк8]
максимальная длина строки = 100
игнорировать = F401
В этом примере max-line-length = 100 указывает Flake8 выдавать предупреждения для любой строки в ваших файлах исходного кода, длина которой превышает 100 символов. ignore = F401 указывает Flake8 игнорировать ошибки, связанные с неиспользованным импортом.
Вам не нужно добавлять эти параметры в файл конфигурации, так как вы можете указать их в командной строке следующим образом:
flake8 --игнорировать E203 --max-line-length 100
Использование файла конфигурации — лучший подход, поскольку вам не нужно указывать одни и те же параметры каждый раз, когда вы используете flake8.
Использование Flake8 в VS Code
Если вы используете VS Code для написания своего приложения Python, вы можете использовать расширение flake8, чтобы анализировать файлы Python по мере их ввода.
Во-первых, вам нужно установить расширение flake8 с торговой площадки VS Code. Затем, чтобы настроить его, откройте настройки VS Code, затем найдите «python.linting.flake8Enabled» и включите линтинг с помощью flake8.
Теперь вы должны увидеть ошибки и предупреждения, выделенные в вашем коде волнистой линией, когда вы его пишете. При наведении курсора на выделенный текст отобразится сообщение, объясняющее проблему и предлагающее возможные решения.
Другой Python IDE такие как Pycharm, также имеют расширения Flake8, которые вы можете настроить, чтобы упростить процесс анализа.
Почему вы должны использовать линтер?
При написании кода вы можете вносить ошибки и несоответствия, которые приводят к сбою приложения или проблемам с производительностью. Такой линтер, как Flake8, позволяет заранее выявить некоторые из этих проблем, помогая писать более чистый код. Интеграция его в ваш рабочий процесс разработки очень важна.
Вы можете сделать это, используя его в своем текстовом редакторе или IDE и интегрировав его в свою непрерывную работу. конвейер интеграции для автоматической проверки вашего кода на наличие ошибок и предупреждений, прежде чем вы объедините его с вашим Основная отрасль.