Почистете своята кодова база с този лесен за използване инструмент от командния ред.

Инструментът за линтинг е ценен ресурс, който може да ви помогне да откриете грешки и несъответствия във вашия код.

Flake8 е един от най-популярните инструменти за linting за Python. Той идентифицира грешки в синтаксиса и форматирането във вашия код, заедно с други проблеми като неизползвани импортирания. Той е много гъвкав, защото въпреки че има правила по подразбиране, можете да ги променяте или добавяте към тях, за да отговарят на вашите изисквания.

Можете също така да конфигурирате Flake8 да работи, когато запазвате актуализации на вашия код с помощта на VS Code. Всички тези функции го правят ценен инструмент за писане на програми на Python.

Инсталиране на Flake8

Следвайте стъпките по-долу, за да инсталирате Flake8 във вашата среда за разработка. Може да се наложи инсталирайте Pip на вашата машина първи.

  1. Изпълнете командата по-долу във вашия терминал, за да инсталирате Flake8:
    pip инсталирайте flake8
  2. Проверете дали Flake8 е инсталиран, като изпълните следната команда:
    flake8 --версия
  3. instagram viewer
  4. Ако Flake8 е инсталиран правилно, трябва да видите резултат, подобен на следния:
    4.0.1 (маккейб: 0.6.1, pycodestyle: 2.8.0, пифлейкс: 2.4.0) CPython 3.9.13На
    Linux

След като успешно инсталирате Flake8, можете да започнете да го използвате.

Използване на Flake8 за анализиране на Python код

За да разберете как да използвате Flake8, започнете със следния код. Има няколко умишлени грешки. Копирайте го във файл, наречен greeting.py.

дефпоздрав(име):
печат ("Здравейте, " + име)

поздрав("Алиса")
 поздрав("Боб")

Изпълнение на Flake8 на един файл

Синтаксисът за изпълнение на Flake8 на един файл е както следва.

flake8 пътека/до/file.py

В този пример отидете до директорията, съдържаща файла greting.py, и изпълнете следната команда.

flake8 greeting.py

Flake8 трябва да върне следното съобщение, което показва, че има грешка при отстъпа.

поздрав.py:5:1: E999IndentationError: неочакваноотстъп

Този резултат показва, че ред 5 е с ненужен отстъп. Да се поправете тази грешка при отстъпа, трябва да премахнете интервала от началото на този ред.

дефпоздрав(име):
печат ("Здравейте, " + име)

поздрав("Алиса")
поздрав("Боб")

Сега, когато стартирате Flake8, ще получите следните предупреждения.

поздрав.py:4:1: E305очакван 2 празнолинииследкласилифункцияопределение, намерени 1
поздрав.py:5:16: W292ненова линияприкрайнафайл

Този резултат показва следните проблеми:

  • На ред 4 трябва да има два празни реда след дефиницията на поздравителната функция, но има само един.
  • На ред 5 трябва да има нов ред в края на файла.

След като коригирате тези проблеми, flake8 не трябва да връща никакви съобщения.

Досега сме анализирали само един файл, но в повечето случаи ще искате да анализирате няколко файла.

Изпълнение на Flake8 на множество файлове

Кажете, че ви се обажда друг test_greeting.py който съдържа следния код:

от поздрав импортиране поздрав
дефtest_greet():
твърдят поздрав("Алиса") == "Здравей, Алис!"

За да анализирате тези два файла, изпълнете следната команда.

flake8 greeting.py test_greeting.py

Този метод работи, но ако имате повече от два файла, изписването на имената на файловете може да е уморително и податливо на грешки.

По-ефективно е да използвате следната команда, за да анализирате всички файлове в текущата директория:

flake8 .

Разбиране на грешките и предупрежденията на 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, както следва:

[flake8]

След това добавете опциите, които искате да конфигурирате:

[flake8]
max-line-length = 100
игнориране = F401

В този пример max-line-length = 100 казва на Flake8 да издава предупреждения за всеки ред във вашите файлове с изходен код, който надвишава 100 знака по дължина. ignore = F401 казва на Flake8 да игнорира грешки, свързани с неизползвани импортирания.

Не е необходимо да добавяте тези опции към конфигурационен файл, тъй като можете да ги укажете в командния ред по следния начин:

flake8 --ignore E203 --max-line-length 100

Използването на конфигурационен файл е най-добрият подход, тъй като не е необходимо да задавате едни и същи опции всеки път, когато използвате flake8.

Използване на Flake8 във VS Code

Ако използвате VS Code, за да напишете своето приложение на Python, можете да използвате разширението flake8, за да линтите вашите Python файлове, докато пишете.

Първо, трябва да инсталирате разширението flake8 от VS Code marketplace. След това, за да го конфигурирате, отворете настройките на VS Code, след това потърсете „python.linting.flake8Enabled“ и активирайте linting с flake8.

Сега трябва да видите грешки и предупреждения, подчертани във вашия код с криволичеща линия, докато го пишете. Задържането на курсора на мишката върху маркирания текст ще покаже съобщение, което обяснява проблема и предлага възможни поправки.

други IDE на Python като Pycharm също имат Flake8 разширения, които можете да конфигурирате, за да опростите процеса на линтинг.

Защо трябва да използвате Linter?

Докато пишете код, може да въведете грешки и несъответствия, които да причинят неуспех на приложението ви или да имат проблеми с производителността. Линтер като Flake8 ви позволява да уловите някои от тези проблеми предварително, като ви помага да пишете по-чист код. Интегрирането му във вашия работен процес за разработка е много важно.

Можете да направите това, като го използвате във вашия текстов редактор или IDE и го интегрирате във вашия непрекъснат интеграционен тръбопровод за автоматична проверка на вашия код за грешки и предупреждения, преди да го обедините във вашия основен клон.