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ő.

  1. Futtassa az alábbi parancsot a terminálon a Flake8 telepítéséhez:
    pip install flake8
  2. A következő parancs futtatásával ellenőrizze, hogy a Flake8 telepítve van-e:
    flake8 --változat
  3. instagram viewer
  4. 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.