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

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

Tanácsadás álláskereső portálnak

Egy piacvezető állásportál működése során a hirdetések feldolgozása nem csupán üzleti folyamat – ez a szolgáltatás alapköve. Ha a hirdetésfeldolgozási rendszerekben vagy a háttéralkalmazásokban hiba lép fel, az közvetlenül befolyásolja a felhasználói élményt és a vállalatok toborzási hatékonyságát. Ebben az esettanulmányban bemutatjuk, hogyan elemeztük egy állásportál tesztelési folyamatait, milyen jelenlegi kihívások fedezhetők fel a működésben,

AI-alapú rendszerek tesztelése: Hogyan teszteljünk, ha nincs egyetlen helyes válasz?

A szoftvertesztelés (és maga az automatizálás is) évtizedeken át egy megnyugtató, determinisztikus alapelvre épült: ha X a bemenet, akkor a kimenetnek minden egyes alkalommal pontosan Y-nak kell lennie. Ha rákattintok a „Mentés” gombra user1-ként a weblapon, akkor egy új sor keletkezik az adatbázisban. A teszteset végeztekor valami vagy Pass vagy Fail. Nincs átmenet, nincs „talán”. Ez a determinisztikus

Scroll to Top