Oživte svoju kódovú základňu pomocou tohto ľahko použiteľného nástroja príkazového riadka.
Nástroj na lining je cenným zdrojom, ktorý vám môže pomôcť zachytiť chyby a nezrovnalosti vo vašom kóde.
Flake8 je jedným z najpopulárnejších nástrojov na lintovanie pre Python. Identifikuje chyby syntaxe a formátovania vo vašom kóde spolu s ďalšími problémami, ako sú nevyužité importy. Je veľmi flexibilný, pretože aj keď má predvolené pravidlá, môžete ich zmeniť alebo pridať tak, aby vyhovovali vašim požiadavkám.
Môžete tiež nakonfigurovať Flake8, aby sa spustil pri ukladaní aktualizácií kódu pomocou kódu VS. Všetky tieto funkcie z neho robia cenný nástroj pri písaní programov Python.
Inštalácia Flake8
Ak chcete nainštalovať Flake8 do svojho vývojového prostredia, postupujte podľa nižšie uvedených krokov. Možno budete musieť nainštalujte Pip na váš počítač najprv.
- Spustite príkaz nižšie vo svojom termináli a nainštalujte Flake8:
pip install flake8
- Skontrolujte, či je Flake8 nainštalovaný spustením nasledujúceho príkazu:
flake8 --verzia
- Ak je Flake8 nainštalovaný správne, mali by ste vidieť výstup podobný nasledujúcemu:
4.0.1 (mccabe: 0.6.1, pycodestyle: 2.8.0, pyflakes: 2.4.0) CPython 3.9.13na
Linux
Po úspešnej inštalácii Flake8 ho môžete začať používať.
Použitie Flake8 na analýzu kódu Python
Aby ste pochopili, ako používať Flake8, začnite s nasledujúcim kódom. Obsahuje niekoľko úmyselných chýb. Skopírujte ho do súboru s názvom pozdrav.py.
defpozdrav(názov):
vytlačiť ("Ahoj, " + meno)
pozdrav("Alice")
pozdrav("Bob")
Spustenie Flake8 na jednom súbore
Syntax pre spustenie Flake8 na jednom súbore je nasledovná.
flake8 cesta/k/suboru.py
V tomto príklade prejdite do adresára obsahujúceho súbor greting.py a spustite nasledujúci príkaz.
vločka8 pozdrav.py
Flake8 by mal vrátiť nasledujúcu správu ukazujúcu, že došlo k chybe odsadenia.
pozdrav.py:5:1: E999IndentationError: neočakávanézarážka
Tento výstup naznačuje, že riadok 5 je zbytočne odsadený. Komu opravte túto chybu odsadenia, musíte odstrániť medzeru zo začiatku tohto riadku.
defpozdrav(názov):
vytlačiť ("Ahoj, " + meno)
pozdrav("Alice")
pozdrav("Bob")
Teraz, keď spustíte Flake8, dostanete nasledujúce upozornenia.
pozdrav.py:4:1: E305očakávané 2 prázdnalinkypotriedaalebofunkciudefinícia, nájdené 1
pozdrav.py:5:16: W292čNový riadokprikonieczsúbor
Tento výstup indikuje nasledujúce problémy:
- Na riadku 4 by po definícii funkcie pozdravu mali byť dva prázdne riadky, ale je tam len jeden.
- Na riadku 5 by mal byť na konci súboru nový riadok.
Po odstránení týchto problémov by flake8 nemal vracať žiadne správy.
Doteraz sme analyzovali iba jeden súbor, ale vo väčšine prípadov budete chcieť analyzovať viacero súborov.
Spustenie Flake8 na viacerých súboroch
Povedzte, že máte ďalší hovor test_pozdrav.py ktorý obsahuje nasledujúci kód:
od pozdrav importovať pozdrav
deftest_pozdrav():
tvrdiť pozdrav("Alice") == "Ahoj Alice!"
Ak chcete analyzovať tieto dva súbory, spustite nasledujúci príkaz.
flake8 greeting.py test_greeting.py
Táto metóda funguje, ale ak máte viac ako dva súbory, zadávanie názvov súborov môže byť únavné a náchylné na chyby.
Na analýzu všetkých súborov v aktuálnom adresári je efektívnejšie použiť nasledujúci príkaz:
vločka8 .
Pochopenie chýb a varovaní Flake8
Flake8 hlási dva typy problémov:
- Chyby: Chyba označuje syntax alebo štrukturálny problém, ktorý bráni spusteniu kódu ako chyba odsadenia z príkladu greeting.py.
- Varovania: Varovanie označuje potenciálny problém alebo porušenie pravidiel štýlu PEP 8, ako napríklad varovanie „žiadny nový riadok na konci súboru“ z príkladu greeting.py.
Niektoré z bežných chýb a upozornení sú:
- E101: odsadenie obsahuje zmiešané medzery a tabulátory.
- E302: očakávané 2 prázdne riadky, nájdených 0.
- E999 IndentationError: neočakávané odsadenie.
- W291: biele miesto na konci.
- E501: Riadok je príliš dlhý (maximálne 79 znakov).
- F401: modul importovaný, ale nepoužitý.
Keď spustíte Flake8, vypíše správu, ako je tá, ktorá je uvedená vyššie, a číslo riadku a umiestnenie kódu, na ktorý správa odkazuje. To vám pomôže zistiť, kde presne má váš kód problémy, čo vám šetrí čas na ladenie.
Konfigurácia Flake8
Pre niektoré projekty môžu byť pravidlá Flake8 príliš prísne. V týchto prípadoch vám Flake8 umožňuje nakonfigurovať ho a prispôsobiť jeho správanie vašim požiadavkám.
Môžete poskytnúť možnosti konfigurácie, ako napríklad:
- Ignorovanie konkrétnych chýb alebo upozornení.
- Nastavenie maximálnej dĺžky riadku.
- Určenie dodatočných pravidiel.
Na ukážku vytvorte konfiguračný súbor s názvom setup.cfg. Možnosti konfigurácie môžete pridať aj do súboru s názvom tox.ini alebo .flake8.
V tomto súbore začnite vytvorením sekcie flake8 takto:
[vločka8]
Potom pridajte možnosti, ktoré chcete nakonfigurovať:
[vločka8]
maximálna dĺžka riadku = 100
ignorovať = F401
V tomto príklade max-line-length = 100 hovorí Flake8, aby vydal varovania pre každý riadok v súboroch zdrojového kódu, ktorý presahuje dĺžku 100 znakov. ignore = F401 povie Flake8, aby ignoroval chyby súvisiace s nevyužitými importmi.
Tieto možnosti nemusíte pridávať do konfiguračného súboru, pretože ich môžete zavolať a zadať ich na príkazovom riadku takto:
vločka8 --ignorujte E203 --maximálna dĺžka-riadku 100
Použitie konfiguračného súboru je najlepší prístup, pretože nemusíte zadávať rovnaké možnosti pri každom použití flake8.
Použitie Flake8 v kóde VS
Ak na písanie svojej aplikácie Python používate kód VS, môžete použiť rozšírenie flake8 na lintovanie súborov Python počas písania.
Najprv musíte nainštalovať rozšírenie flake8 z trhu VS Code. Ďalej, aby ste ho nakonfigurovali, otvorte nastavenia kódu VS, potom vyhľadajte „python.linting.flake8Enabled“ a povoľte linting pomocou flake8.
Teraz by ste mali vidieť chyby a varovania zvýraznené vo vašom kóde zvlnenou čiarou, keď ho píšete. Umiestnením kurzora myši na zvýraznený text sa zobrazí správa, ktorá vysvetľuje problém a navrhuje možné opravy.
Iné Python IDE ako napríklad Pycharm majú tiež rozšírenia Flake8, ktoré môžete nakonfigurovať na zjednodušenie procesu žmolkovania.
Prečo by ste mali používať Linter?
Pri písaní kódu môžete zaviesť chyby a nezrovnalosti, ktoré spôsobia zlyhanie vašej aplikácie alebo problémy s výkonom. Linter ako Flake8 vám umožňuje zachytiť niektoré z týchto problémov vopred, čo vám pomôže napísať čistejší kód. Jeho integrácia do vášho vývojového pracovného postupu je veľmi dôležitá.
Môžete to urobiť tak, že ho použijete vo svojom textovom editore alebo IDE a integrujete ho do vášho nepretržitého integračný kanál na automatickú kontrolu chýb a upozornení vo vašom kóde predtým, ako ho zlúčite so svojím hlavná pobočka.