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

AI által generált tesztesetek: mennyire megbízhatóak valójában?

A technológiai világ legújabb varázsszava az AI – a mesterséges intelligencia mindent felforgatni látszik a szoftverfejlesztésben. A kódgenerátor asszisztensek (GitHub Copilot, ChatGPT, Claude) szinte naponta jelentenek meg a fejlesztői munkafolyamatokban, és ígéreteik szerint képesek forradalmian felgyorsítani nem csak a fejlesztést, hanem a tesztelést is. A marketing anyagok tele vannak olyan kifejezésekkel, mint „AI-generált tesztek”, „automatikus

Hogyan épül fel egy jól működő tesztelési stratégia? – A szoftverminőség tervrajza

Tegyük fel, hogy egy hatalmas felhőkarcolót kell építeni egy forgalmas belváros közepén és megvannak hozzá a szakképzett munkások, a legmodernebb munkagépek és a prémium alapanyagok. Azonban van egy apró, de annál kritikusabb bökkenő: nincs részletes tervrajz. Mindenki tudja nagyjából, mi a dolga – a kőműves falat húz, az asztalos ablakot épít be, a villanyszerelő pedig

Mi az a regressziós tesztelés, és miért ez a szoftverminőség záloga?

Ismerős a helyzet? A fejlesztőcsapat éppen csak élesített egy ragyogó új funkciót, amitől mindenki a felhasználószám robbanásszerű növekedését várja. Az öröm azonban rövid ideig tart: alig egy órával a kiadás után érkeznek az első dühös hibajegyek. Az új funkció ugyan remekül működik, de valamilyen rejtélyes módon a bejelentkezés gomb megszűnt létezni, vagy a fizetési folyamat

Scroll to Top