A Pipfile és Pipfile.lock: A Python projektjeid megmentői

Egy képzeletbeli helyzet, ami nagyon életszerű

Képzeld el, hogy egy Python projektben dolgozol, rengeteg csomagra van szükséged, és fontos lenne számodra, hogy mindenkinek, aki a projekten dolgozik, ugyanaz a környezete legyen. Továbbá az is remek lenne, ha egy esetleges új kollégának nem kellene órákat eltölteni a szükséges csomagok felkutatásával/telepítésével. Ezekre a problémákra jelent megoldást a Pipfile és Pipfile.lock.

Mi is ez a két fájl?

 A pip a Python csomagkezelője, a virtualenv pedig arra szolgál, hogy Python környezeteket tudjunk kezelni és létrehozni. Ennek tulajdonképpen az ötvözéseként használható a Pipfile és Pipfile.lock.

Ezen fájlok rögzítik egy python környezetbe települt összes csomagot és azoknak a függőségeit.

A Pipfile felépítése

source: Megadja, hogy honnan töltjük le a csomagokat. Ez legtöbb esetben ugyanaz mindenkinek, de persze saját URL is megadható, amennyiben szükséges.

packages: Itt találhatók a projekt által használt csomagok.

dev-packages: Ebben a részben a fejlesztők és tesztelők által használt csomagok szerepelnek. (Például egy code clean package nem szükséges egy végfelhasználó számára, de egy fejlesztőnek hasznos lehet.)

requires: A Python verzióját adja meg.

Hogyan működik a gyakorlatban?

A pipfile-t létre tudjuk hozni a következő paranccsal:

pipenv install

Ezt követően ha a pipfile-ba beírunk egy csomagot, és lefuttatjuk újra a parancsot, a környezet kibővül a csomaggal.

Majd átmásolva a fájlokat,  ugyanezen paranccsal egy másik python környezetben (új kolléga gépe) telepíthetőek ugyanazon csomagok.

Miért fontos a Pipfile.lock?

A Pipfile tartalmazza a projektben szükséges csomagokat, de a Pipfile.lock ennél is tovább megy. Ez a fájl rögzíti a pontos verziószámokat és a háttérben használt csomagokat is, így biztosítva, hogy mindenki ugyanazt a környezetet használja, elkerülve a verzióinkompatibilitási problémákat. A lock file a pipfile-ban deklarált függőségek aktuális verzióit tárolja. A pipfile-ban megadott függőségek mellett a háttérfüggőségeket is rögzíti, amik a pipfileban nem szerepelnek.

Ha dev package-ek is kellenek…

Amennyiben a „dev-packages”-ben felsorolt csomagokra is szükségünk van, akkor így azok is telepítésre kerülnek:

pipenv install –dev

Összefoglalva

A Pipfile és Pipfile.lock fájlok nagy szolgálatot tudnak tenni a különböző python package-ek és verziók menedzselésében. Segítségükkel egyszerűen és gyorsan telepíthetjük a projektünkhöz szükséges összes csomagot, elkerülve a kompatibilitási problémákat és időt spórolva. Ha Python projektekkel foglalkozol, mindenképp érdemes megismerkedned velük.

Megosztás

Kérsz értesítést a legújabb cikkekről?

Kapcsolódó cikkek

Miért nem szabad a fejlesztőnek a saját kódját tesztelnie?

A fejlesztő megírja a funkciót. Megírja hozzá a teszteket is – alaposan, lelkiismeretesen. Minden teszt zöld. A kód átmegy a pipeline-on, kimegy élesbe. Két héttel később a rendszer elhasal egy olyan eseten, amire senki nem gondolt. A tesztek nem hazudtak. Egyszerűen nem a jó kérdést tették fel. Ez a cikk nem arról szól, hogy a

Mennyi pénzbe kerül egy későn megtalált hiba?

Képzeljünk el egy egyetlen félreérthető mondatot egy több száz oldalas követelményspecifikációban. A mondat egy kerekítési szabályról szól, és kétféleképpen is értelmezhető. A fejlesztő az egyik értelmezés szerint kódolja le – teljesen logikusan, jóhiszeműen, a saját olvasata alapján. Ha ezt a mondatot valaki a specifikáció átolvasásakor megkérdőjelezi, a „javítás” költsége nagyjából tíz perc: egy tisztázó kérdés

A tesztelés nem költség, hanem bevételvédelem

Képzeljünk el egy hétfő reggeli vezetői értekezletet, ahol a pénzügyi igazgató (CFO) a negyedéves költségvetést vizsgálva megáll a „Minőségbiztosítás (QA) és Szoftvertesztelés” sornál. „Miért költünk ennyit arra, hogy hibákat keressünk a kódunkban? Nem lenne egyszerűbb, ha a fejlesztőink eleve jobban figyelnének, és hibátlan kódot adnának ki?” – hangzik el a klasszikus kérdés. Ez a felvetés

Scroll to Top