Frissítse kódbázisát ezzel a könnyen használható parancssori eszközzel.
A linting eszköz értékes erőforrás, amely segíthet a kód hibáinak és következetlenségeinek felderítésében.
A Flake8 az egyik legnépszerűbb szöszölőeszköz a Python számára. Azonosítja a kód szintaktikai és formázási hibáit, valamint egyéb problémákat, például a fel nem használt importokat. Nagyon rugalmas, mert annak ellenére, hogy vannak alapértelmezett szabályai, módosíthatja vagy kiegészítheti őket, hogy megfeleljenek az Ön igényeinek.
Azt is beállíthatja, hogy a Flake8 fusson, amikor a VS Code használatával menti a kód frissítéseit. Mindezek a szolgáltatások értékes eszközzé teszik Python programok írásakor.
A Flake8 telepítése
Kövesse az alábbi lépéseket a Flake8 telepítéséhez a fejlesztői környezetre. Lehet, hogy szüksége lesz rá telepítse a Pip-et a gépére első.
- Futtassa az alábbi parancsot a terminálon a Flake8 telepítéséhez:
pip install flake8
- A következő parancs futtatásával ellenőrizze, hogy a Flake8 telepítve van-e:
flake8 --változat
- Ha a Flake8 megfelelően van telepítve, a következőhöz hasonló kimenetet kell látnia:
4.0.1 (mccabe: 0.6.1, pycodestyle: 2.8.0, pyflakes: 2.4.0) CPython 3.9.13tovább
Linux
Miután sikeresen telepítette a Flake8-at, elkezdheti használni.
Flake8 használata a Python kód elemzéséhez
A Flake8 használatának megértéséhez kezdje a következő kóddal. Van benne egy-két szándékos hiba. Másolja be egy nevű fájlba üdvözlet.py.
defüdvözlet(név):
nyomtatás("Helló, " + név)
üdvözlet("Alice")
üdvözlet("Bob")
A Flake8 futtatása egyetlen fájlon
A Flake8 egyetlen fájlon való futtatásának szintaxisa a következő.
flake8 path/to/file.py
Ebben a példában keresse meg a greting.py fájlt tartalmazó könyvtárat, és futtassa a következő parancsot.
flake8 köszönés.py
A Flake8-nak a következő üzenetet kell visszaadnia, jelezve, hogy behúzási hiba történt.
üdvözlet.py:5:1: E999IndentationError: váratlanbehúzás
Ez a kimenet azt jelzi, hogy az 5. sor szükségtelenül be van húzva. Nak nek javítsa ki ezt a behúzási hibát, el kell távolítania a szóközt a sor elejéről.
defüdvözlet(név):
nyomtatás("Helló, " + név)
üdvözlet("Alice")
üdvözlet("Bob")
Most, amikor a Flake8-at futtatja, a következő figyelmeztetéseket kapja.
üdvözlet.py:4:1: E305várt 2 üresvonalakutánosztályvagyfunkciómeghatározás, megtalált 1
üdvözlet.py:5:16: W292nemúj sornál nélvégenak,-nekfájlt
Ez a kimenet a következő problémákat jelzi:
- A 4. sorban az üdvözlő függvény definíciója után két üres sornak kell lennie, de csak egy van.
- Az 5. sorban egy új sornak kell lennie a fájl végén.
Miután kijavította ezeket a problémákat, a flake8 nem ad vissza üzenetet.
Eddig csak egy fájlt elemeztünk, de a legtöbb esetben több fájlt is érdemes elemezni.
A Flake8 futtatása több fájlon
Mondja, hogy van egy másik hívása test_greeting.py amely a következő kódot tartalmazza:
tól től üdvözlet import üdvözlet
deftest_greet():
állítja üdvözlet("Alice") == – Helló, Alice!
A két fájl elemzéséhez futtassa a következő parancsot.
flake8 greeting.py test_greeting.py
Ez a módszer működik, de ha kettőnél több fájlja van, a fájlnevek beírása fárasztó és hibás lehet.
Hatékonyabb a következő parancs használata az aktuális könyvtárban lévő összes fájl elemzéséhez:
pehely8 .
A Flake8 hibák és figyelmeztetések megértése
A Flake8 kétféle problémáról számol be:
- Hibák: A hiba szintaktikai vagy szerkezeti problémát jelez, amely megakadályozza a kód futtatását, mint a greeting.py példában szereplő behúzási hiba.
- Figyelmeztetések: A figyelmeztetés potenciális problémára vagy a PEP 8 stílusirányelveinek megsértésére utal, például a greeting.py példában szereplő „nincs újsor a fájl végén” figyelmeztetés.
Néhány gyakori hiba és figyelmeztetés:
- E101: a behúzás vegyesen tartalmaz szóközöket és tabulátorokat.
- E302: 2 üres sor várt, talált 0.
- E999 IndentationError: váratlan behúzás.
- W291: záró szóköz.
- E501: túl hosszú a sor (maximum 79 karakter).
- F401: a modul importálva, de nem használt.
A Flake8 futtatásakor a fentihez hasonló üzenetet ad ki, valamint a sorszámot és az üzenetre hivatkozó kód helyét. Ez segít megtudni, hogy pontosan hol vannak a kóddal kapcsolatos problémák, és ezzel időt takaríthat meg a hibakereséshez.
A Flake8 konfigurálása
Egyes projekteknél a Flake8 szabályai túl merevek lehetnek. Ezekben az esetekben a Flake8 lehetővé teszi a konfigurálást és a viselkedésének testreszabását az Ön igényei szerint.
Megadhat konfigurációs lehetőségeket, például:
- Konkrét hibák vagy figyelmeztetések figyelmen kívül hagyása.
- A maximális vonalhossz beállítása.
- További szabályok meghatározása.
A bemutatáshoz hozzon létre egy setup.cfg nevű konfigurációs fájlt. A konfigurációs beállításokat egy tox.ini vagy .flake8 nevű fájlhoz is hozzáadhatja.
Ebben a fájlban kezdje el egy flake8 szakasz létrehozásával az alábbiak szerint:
[flake8]
Ezután adja hozzá a konfigurálni kívánt beállításokat:
[flake8]
maximális vonalhossz = 100
figyelmen kívül hagyás = F401
Ebben a példában a max-line-length = 100 arra utasítja a Flake8-at, hogy adjon ki figyelmeztetést a forráskódfájlok minden olyan sorára, amely meghaladja a 100 karaktert. ignore = Az F401 utasítja a Flake8-at, hogy figyelmen kívül hagyja a fel nem használt importokkal kapcsolatos hibákat.
Ezeket a beállításokat nem kell hozzáadnia egy konfigurációs fájlhoz, mert meghívhatja őket a parancssorban, így:
flake8 --figyelmen kívül hagyja az E203-at --max-line-longth 100
A konfigurációs fájl használata a legjobb megközelítés, mivel nem kell ugyanazokat a beállításokat megadnia minden alkalommal, amikor a flake8-at használja.
A Flake8 használata a VS Code-ban
Ha VS Code-ot használ a Python-alkalmazás megírásához, akkor a flake8 kiterjesztéssel gépelés közben szöszölheti a Python-fájlokat.
Először telepítenie kell a flake8 bővítményt a VS Code piactérről. Ezután a konfigurálásához nyissa meg a VS Code beállításait, majd keresse meg a „python.linting.flake8Enabled” kifejezést, és engedélyezze a linting funkciót a flake8 segítségével.
A hibákat és figyelmeztetéseket most egy kancsal vonallal kiemelve kell látnia a kódban írás közben. Ha az egérmutatót a kiemelt szöveg fölé viszi, megjelenik egy üzenet, amely elmagyarázza a problémát, és javaslatokat tesz a lehetséges javításokra.
Egyéb Python IDE-k mint például a Pycharm is rendelkezik Flake8 kiterjesztéssel, amelyet beállíthat a szöszmélési folyamat egyszerűsítésére.
Miért érdemes Lintert használni?
A kód írása során hibák és következetlenségek léphetnek fel, amelyek az alkalmazás sikertelenségét vagy teljesítménybeli problémákat okozhatnak. Egy olyan linter, mint a Flake8, lehetővé teszi, hogy előre észlelje ezeket a problémákat, és segít tisztább kód írásában. Nagyon fontos integrálni a fejlesztési munkafolyamatba.
Ezt úgy teheti meg, hogy a szövegszerkesztőben vagy az IDE-ben használja, és integrálja a folyamatos programjába integrációs folyamat, amely automatikusan ellenőrzi a kódot a hibák és figyelmeztetések szempontjából, mielőtt egyesítené a kóddal főág.