Pomladno očistite svojo kodno zbirko s tem orodjem ukazne vrstice, ki je preprosto za uporabo.
Orodje za linting je dragocen vir, ki vam lahko pomaga odkriti napake in nedoslednosti v vaši kodi.
Flake8 je eno najbolj priljubljenih orodij za linting za Python. Prepozna napake v sintaksi in oblikovanju v vaši kodi, skupaj z drugimi težavami, kot je neuporabljen uvoz. Je zelo prilagodljiv, saj, čeprav ima privzeta pravila, jih lahko spremenite ali dodate, da ustrezajo vašim zahtevam.
Prav tako lahko konfigurirate Flake8 za zagon, ko shranite posodobitve v svojo kodo s kodo VS. Zaradi vseh teh funkcij je dragoceno orodje pri pisanju programov Python.
Namestitev Flake8
Za namestitev Flake8 v vaše razvojno okolje sledite spodnjim korakom. Morda boste morali namestite Pip na svoj računalnik prvi.
- Zaženite spodnji ukaz v vašem terminalu, da namestite Flake8:
pip namestite flake8
- Preverite, ali je Flake8 nameščen, tako da zaženete naslednji ukaz:
flake8 --različica
- Če je Flake8 pravilno nameščen, bi morali videti izpis, podoben naslednjemu:
4.0.1 (mccabe: 0.6.1, pycodestyle: 2.8.0, kosmiči: 2.4.0) CPython 3.9.13na
Linux
Ko ste uspešno namestili Flake8, ga lahko začnete uporabljati.
Uporaba Flake8 za analizo kode Python
Če želite razumeti, kako uporabljati Flake8, začnite z naslednjo kodo. Ima nekaj namernih napak. Kopirajte ga v datoteko, imenovano pozdrav.py.
defpozdrav(ime):
natisni("Zdravo, " + ime)
pozdrav("Alice")
pozdrav("Bob")
Zagon Flake8 v eni datoteki
Sintaksa za izvajanje Flake8 v eni datoteki je naslednja.
flake8 pot/do/file.py
V tem primeru se pomaknite do imenika, ki vsebuje datoteko greting.py, in zaženite naslednji ukaz.
flake8 pozdrav.py
Flake8 bi moral vrniti naslednje sporočilo, ki kaže, da je prišlo do napake pri zamiku.
pozdrav.py:5:1: E999IndentationError: nepričakovanozamik
Ta rezultat kaže, da je vrstica 5 po nepotrebnem zamaknjena. Za popravi to napako pri zamiku, morate odstraniti presledek z začetka te vrstice.
defpozdrav(ime):
natisni("Zdravo, " + ime)
pozdrav("Alice")
pozdrav("Bob")
Zdaj, ko zaženete Flake8, boste prejeli naslednja opozorila.
pozdrav.py:4:1: E305pričakovano 2 praznovrsticeporazredozfunkcijodefinicija, našel 1
pozdrav.py:5:16: W292štnova vrsticaprikonecodmapa
Ta rezultat kaže na naslednje težave:
- V vrstici 4 bi morali biti dve prazni vrstici za definicijo pozdravne funkcije, vendar je samo ena.
- V vrstici 5 mora biti na koncu datoteke nova vrstica.
Ko odpravite te težave, flake8 ne bi smel vrniti nobenega sporočila.
Doslej smo analizirali samo eno datoteko, vendar boste v večini primerov želeli analizirati več datotek.
Zagon Flake8 na več datotekah
Recite, da imate drugega poklicanega test_greeting.py ki vsebuje naslednjo kodo:
od pozdrav uvoz pozdrav
deftest_greet():
trditi pozdrav("Alice") == "Pozdravljena, Alice!"
Za analizo teh dveh datotek zaženite naslednji ukaz.
flake8 greeting.py test_greeting.py
Ta metoda deluje, vendar če imate več kot dve datoteki, je lahko vpisovanje imen datotek naporno in nagnjeno k napakam.
Učinkoviteje je uporabiti naslednji ukaz za analizo vseh datotek v trenutnem imeniku:
kosmiči8.
Razumevanje napak in opozoril Flake8
Flake8 poroča o dveh vrstah težav:
- Napake: napaka označuje skladenjsko ali strukturno težavo, ki preprečuje, da bi se vaša koda izvajala, kot je napaka pri zamiku iz primera greeting.py.
- Opozorila: Opozorilo označuje morebitno težavo ali kršitev slogovnih smernic PEP 8, kot je opozorilo »ni nove vrstice na koncu datoteke« iz primera greeting.py.
Nekatere pogoste napake in opozorila so:
- E101: zamik vsebuje mešane presledke in zavihke.
- E302: pričakovani 2 prazni vrstici, najdena 0.
- E999 IndentationError: nepričakovan zamik.
- W291: presledek na koncu.
- E501: predolga vrstica (največ 79 znakov).
- F401: modul uvožen, vendar neuporabljen.
Ko zaženete Flake8, bo izpisal sporočilo, kot je prikazano zgoraj, ter številko vrstice in lokacijo kode, na katero se sporočilo nanaša. To vam pomaga vedeti, kje natančno ima vaša koda težave, kar vam prihrani čas pri odpravljanju napak.
Konfiguriranje Flake8
Za nekatere projekte so lahko pravila Flake8 preveč toga. V teh primerih vam Flake8 omogoča, da ga konfigurirate in prilagodite njegovo vedenje vašim zahtevam.
Zagotovite lahko konfiguracijske možnosti, kot so:
- Ignoriranje določenih napak ali opozoril.
- Nastavitev največje dolžine vrstice.
- Določanje dodatnih pravil.
Za predstavitev ustvarite konfiguracijsko datoteko z imenom setup.cfg. Možnosti konfiguracije lahko dodate tudi v datoteko z imenom tox.ini ali .flake8.
V tej datoteki začnite z ustvarjanjem razdelka flake8, kot sledi:
[flake8]
Nato dodajte možnosti, ki jih želite konfigurirati:
[flake8]
max-line-length = 100
ignoriraj = F401
V tem primeru max-line-length = 100 sporoči Flake8, naj izda opozorila za vse vrstice v datotekah vaše izvorne kode, ki presegajo dolžino 100 znakov. ignore = F401 pove Flake8, naj prezre napake, povezane z neuporabljenimi uvozi.
Teh možnosti vam ni treba dodati v konfiguracijsko datoteko, saj jih lahko določite v ukazni vrstici tako:
flake8 --ignore E203 --max-line-length 100
Uporaba konfiguracijske datoteke je najboljši pristop, saj vam ni treba določiti istih možnosti vsakič, ko uporabite flake8.
Uporaba Flake8 v kodi VS
Če uporabljate kodo VS za pisanje svoje aplikacije Python, lahko uporabite razširitev flake8 za lintovanje datotek Python med tipkanjem.
Najprej morate namestiti razširitev flake8 s tržnice VS Code. Nato, da ga konfigurirate, odprite nastavitve kode VS, nato poiščite »python.linting.flake8Enabled« in omogočite linting s flake8.
Zdaj bi morali videti napake in opozorila, poudarjene v vaši kodi z vijugasto črto, ko jo pišete. Če miškin kazalec premaknete nad označeno besedilo, se prikaže sporočilo, ki pojasnjuje težavo in predlaga možne popravke.
drugo Python IDE kot je Pycharm, imajo tudi razširitve Flake8, ki jih lahko konfigurirate za poenostavitev postopka lintinga.
Zakaj bi morali uporabiti Linter?
Med pisanjem kode lahko povzročite napake in nedoslednosti, zaradi katerih vaša aplikacija ne uspe ali ima težave z zmogljivostjo. Linter, kot je Flake8, vam omogoča, da nekatere od teh težav ujamete vnaprej, kar vam pomaga napisati čistejšo kodo. Integracija v vaš delovni tok razvoja je zelo pomembna.
To lahko storite tako, da ga uporabite v svojem urejevalniku besedil ali IDE in ga vključite v svoj neprekinjeni integracijski cevovod za samodejno preverjanje napak in opozoril v vaši kodi, preden jo združite s svojim glavna veja.