Környezetkezelés – TBD
Mi az a Pixi?
Pixi és Conda
A Pixi és a Conda környezetkezelése néhol hasonlít, máshol eltér. A Pixi oldalán találunk egy összehasonlítást a kettőről. Ugyanakkor pár dolgot fontos kiemelni a témával kapcsolatban.
A talán legjelentősebb technikai különbség, hogy a Conda globális környezeteket hoz létre, melyeket bárhonnan aktiválhatunk. Ezzel szemben a Pixi lokálisan, az adott projekt mappájában állítja össze a környezeteket (ezeket meg is találjuk a <projekt mappa>/.pixi/envs könyvtárban). Így tehát a Pixi környezeteket nem érjük el automatikusan a projektmappán kívül.
Ennek hozománya, hogy a Pixi környezeteket nem is feltétlen szükséges aktiválni: a pixi run <parancs> a megadott parancsot automatikusan az adott projekt default környezetében futtatja (amennyiben persze a parancsot a projekt mappáján belül adjuk ki).
Fontos, hogy a Conda és a Pixi megél egymás mellett. Azaz nem kell letörölünk a Conda-t, vagy egyéb trükközést végeznünk, hogy használni tudjuk. Amennyiben a pixi run <parancs> parancsot adjuk ki, az a Pixi környezetet fogja használni, független attól, hogy van-e aktiválva Conda környezet.
Ugyanakkor ha csak simán a python <fájl> parancsot adjuk ki, akkor ezt a Pixi nem fogja automatikusan elkapni, így váratlan működés következhet (pl. a rendszerszintű Python interpreter futtat, vagy a Conda környezet, amennyiben aktiválva van). Ennek elkerülése érdekében a Pixi környezetet is tudjuk „aktiválni“ a pixi shell paranccsal. Ekkor bármilyen kiadott parancs a Pixi környezetnek megfelelően fut, továbbá a terminál sorainak elején megjelenik az aktivált környezet neve (Conda-hoz hasonlóan). A környezet deaktiválása az exit paranncsal történik.
Függőségek hozzáadása
Új Python függőségeket a legegyszerűbben úgy adhatunk a környezethez, ha a pyproject.toml fájl project táblájának dependencies listájába. Ügyeljünk arra, hogy rögzítsük a csomag verzióját (==<verzió> segítségével), illetve az átláthatóság miatt lehetőleg tartsuk a betűrendet.
Amennyiben nem Python függőséget akarunk hozzáadni, azt megtehetjük a tool.pixi.dependencies tábla kiegészítésével. Ha ez nem conda-forge csatornát használ, azt vegyük fel a tool.pixi.workspace tábla channels listájába. További információkért látogassunk a Pixi dokumentáció megfelelő oldalára.
A pixi add parancs
Függőségeket definiálhatunk a pixi add parancs segítségével is. Ugyanakkor egyszerűbb és kevésbé ad hibázásra lehetőséget, ha magát a pyproject.toml fájlt módosítjuk. Mindenesetre az add parancs működését megtaláljuk a Pixi dokumentációban
A Pixi automatikusan fenntart egy pixi.lock fájlt, amit frissít is valamennyi Pixi parancs futtatása esetén (pl. pixi run, pixi install). Ha kifejezetten csak a lock fájlt akarjuk frissíteni a pyproject.toml változtatásai alapján, ezt megtehetjük a pixi lock parancs segítségével.