Atjauniniet savu kodu bāzi, izmantojot šo viegli lietojamo komandrindas rīku.
Šķērsošanas rīks ir vērtīgs resurss, kas var palīdzēt atrast kļūdas un neatbilstības kodā.
Flake8 ir viens no populārākajiem Python pūderēšanas rīkiem. Tas identificē sintakses un formatēšanas kļūdas jūsu kodā, kā arī citas problēmas, piemēram, neizmantotu importēšanu. Tas ir ļoti elastīgs, jo, lai gan tai ir noklusējuma noteikumi, varat tos mainīt vai pievienot, lai tie atbilstu savām prasībām.
Varat arī konfigurēt Flake8, lai tā darbotos, kad saglabājat koda atjauninājumus, izmantojot VS Code. Visas šīs funkcijas padara to par vērtīgu rīku Python programmu rakstīšanai.
Flake8 instalēšana
Veiciet tālāk norādītās darbības, lai savā izstrādes vidē instalētu Flake8. Jums var būt nepieciešams instalējiet Pip savā datorā vispirms.
- Palaidiet tālāk norādīto komandu savā terminālī, lai instalētu Flake8:
pip install flake8
- Pārbaudiet, vai Flake8 ir instalēts, izpildot šādu komandu:
flake8 -- versija
- Ja Flake8 ir instalēts pareizi, jums vajadzētu redzēt līdzīgu izvadi:
4.0.1 (mccabe: 0.6.1, pikoda stils: 2.8.0, pīpārslas: 2.4.0) CPython 3.9.13ieslēgts
Linux
Kad esat veiksmīgi instalējis Flake8, varat sākt to lietot.
Izmantojot Flake8, lai analizētu Python kodu
Lai saprastu, kā lietot Flake8, sāciet ar šādu kodu. Tajā ir pāris tīšas kļūdas. Kopējiet to failā ar nosaukumu sveiciens.py.
defsveiciens(vārds):
drukāt ("Sveiki, " + vārds)
sveiciens ("Alise")
sveiciens ("Bobs")
Flake8 palaišana vienā failā
Sintakse Flake8 palaišanai vienā failā ir šāda.
flake8 ceļš/uz/file.py
Šajā piemērā pārejiet uz direktoriju, kurā ir fails greting.py, un palaidiet šo komandu.
flake8 sveiciens.py
Flake8 ir jāatgriež šāds ziņojums, kas parāda, ka ir radusies atkāpes kļūda.
sveiciens.py:5:1: E999Atkāpes kļūda: negaidītiievilkums
Šī izvade norāda, ka 5. rinda ir nevajadzīgi ievilkta. Uz izlabojiet šo atkāpes kļūdu, jums ir jānoņem atstarpe no šīs rindas sākuma.
defsveiciens(vārds):
drukāt ("Sveiki, " + vārds)
sveiciens ("Alise")
sveiciens ("Bobs")
Tagad, palaižot Flake8, jūs saņemsit šādus brīdinājumus.
sveiciens.py:4:1: E305gaidāms 2 tukšslīnijaspēcklasēvaifunkcijudefinīcija, atrasts 1
sveiciens.py:5:16: W292Nējauna rindiņaplkstbeigasnofailu
Šī izvade norāda uz šādām problēmām:
- 4. rindiņā pēc sveiciena funkcijas definīcijas ir jābūt divām tukšām rindām, taču ir tikai viena.
- 5. rindiņā faila beigās jābūt jaunai rindai.
Kad šīs problēmas ir novērstas, flake8 nevajadzētu atgriezt ziņojumus.
Līdz šim esam analizējuši tikai vienu failu, taču vairumā gadījumu vēlaties analizēt vairākus failus.
Palaižot Flake8 vairākos failos
Sakiet, ka jums ir cits zvans test_greeting.py kas satur šādu kodu:
no sveiciens imports sveiciens
deftesta_sveiciens():
apgalvot sveiciens ("Alise") == "Sveika, Alise!"
Lai analizētu šos divus failus, palaidiet šo komandu.
flake8 greeting.py test_greeting.py
Šī metode darbojas, taču, ja jums ir vairāk nekā divi faili, failu nosaukumu ierakstīšana var būt nogurdinoša un ar kļūdu iespējamību.
Lai analizētu visus pašreizējā direktorijā esošos failus, efektīvāk ir izmantot šo komandu:
pārsla8 .
Izpratne par Flake8 kļūdām un brīdinājumiem
Flake8 ziņo par divu veidu problēmām:
- Kļūdas: kļūda norāda uz sintakses vai strukturālu problēmu, kas neļauj jūsu kodam darboties tāpat kā atkāpes kļūdai no piemēra greeting.py.
- Brīdinājumi: brīdinājums norāda uz iespējamu problēmu vai PEP 8 stila vadlīniju pārkāpumu, piemēram, brīdinājumu “faila beigās nav jaunrindas” no piemēra greeting.py.
Dažas no izplatītākajām kļūdām un brīdinājumiem ir:
- E101: atkāpē ir jauktas atstarpes un tabulēšanas zīmes.
- E302: paredzamas 2 tukšas rindiņas, atrasts 0.
- E999 IndentationError: neparedzēta atkāpe.
- W291: beigu atstarpe.
- E501: rindiņa ir pārāk gara (maksimums 79 rakstzīmes).
- F401: modulis importēts, bet neizmantots.
Palaižot Flake8, tas izvadīs ziņojumu, piemēram, iepriekš parādīto, un rindas numuru un ziņojuma atsauces koda atrašanās vietu. Tas palīdz uzzināt, kur tieši jūsu kodam ir problēmas, kas ietaupa atkļūdošanas laiku.
Flake8 konfigurēšana
Dažiem projektiem Flake8 noteikumi var būt pārāk stingri. Šādos gadījumos Flake8 ļauj to konfigurēt un pielāgot tā darbību atbilstoši jūsu prasībām.
Varat nodrošināt, piemēram:
- Konkrētu kļūdu vai brīdinājumu ignorēšana.
- Maksimālā līnijas garuma iestatīšana.
- Papildu noteikumu precizēšana.
Lai demonstrētu, izveidojiet konfigurācijas failu ar nosaukumu setup.cfg. Varat arī pievienot konfigurācijas opcijas failam ar nosaukumu tox.ini vai .flake8.
Šajā failā sāciet, izveidojot sadaļu flake8 šādi:
[flake8]
Pēc tam pievienojiet opcijas, kuras vēlaties konfigurēt:
[flake8]
maksimālais līnijas garums = 100
ignorēt = F401
Šajā piemērā max-line-length = 100 liek Flake8 izdot brīdinājumus par jebkuru rindiņu jūsu pirmkoda failos, kuru garums pārsniedz 100 rakstzīmes. ignore = F401 liek Flake8 ignorēt kļūdas, kas saistītas ar neizmantotu importēšanu.
Šīs opcijas nav jāpievieno konfigurācijas failam, jo varat tās norādīt komandrindā šādi:
flake8 -- ignorēt E203 -- maksimālais līnijas garums 100
Konfigurācijas faila izmantošana ir labākā pieeja, jo jums nav jānorāda tās pašas opcijas katru reizi, kad izmantojat flake8.
Flake8 izmantošana VS kodā
Ja izmantojat VS kodu, lai rakstītu savu Python lietojumprogrammu, varat izmantot paplašinājumu flake8, lai rakstīšanas laikā savilktu Python failus.
Pirmkārt, jums ir jāinstalē flake8 paplašinājums no VS Code tirgus. Pēc tam, lai to konfigurētu, atveriet VS koda iestatījumus, pēc tam meklējiet “python.linting.flake8Enabled” un iespējojiet linting ar flake8.
Tagad, rakstot, kodā vajadzētu redzēt kļūdas un brīdinājumus, kas ir izcelti ar līkumotu līniju. Virzot kursoru virs iezīmētā teksta, tiks parādīts ziņojums, kurā ir izskaidrota problēma un ieteikti iespējamie labojumi.
Cits Python IDE piemēram, Pycharm, ir arī Flake8 paplašinājumi, kurus varat konfigurēt, lai vienkāršotu savāršanas procesu.
Kāpēc jums vajadzētu izmantot Linter?
Rakstot kodu, var rasties kļūdas un nekonsekvence, kas izraisa lietojumprogrammas kļūmi vai veiktspējas problēmas. Linters, piemēram, Flake8, ļauj jau iepriekš novērst dažas no šīm problēmām, palīdzot rakstīt tīrāku kodu. Ir ļoti svarīgi to integrēt savā izstrādes darbplūsmā.
To var izdarīt, izmantojot to savā teksta redaktorā vai IDE un integrējot to nepārtrauktajā programmā integrācijas cauruļvads, lai automātiski pārbaudītu, vai kodā nav kļūdu un brīdinājumu, pirms to apvienojat ar savu galvenā filiāle.