Kezdő lépések a Python virtuális környezeteivel

Ebből a cikkből megtudhatja, hogyan kezdje meg a virtuális környezetek használatát a Pythonban Windows és Linux operációs rendszereken egyaránt.

Amikor több projekten kezd dolgozni a helyi fejlesztési környezetben, gyakran függőségi problémákba ütközik. Virtuális környezetek létrehozása minden projekthez segíthet a függőségek és a projektkövetelmények jobb kezelésében.

A Python virtuális környezeteinek előnyeinek kihasználása érdekében tanuljuk meg virtuális környezetek létrehozását és aktiválását. 👩🏽‍💻

Mik azok a virtuális környezetek?

A virtuális környezetek elszigetelt és független környezetek, amelyek egy projekt kódját és függőségeit tartalmazzák.

De miért érdemes virtuális környezeteket használni?

Nos, a virtuális környezetek lehetővé teszik ugyanazon könyvtárak különböző verzióinak telepítését és használatát különböző projektekhez. A virtuális környezetek használata azt is biztosítja, hogy ne legyenek törékeny változások, ha két vagy több projekt különböző verziókat használ. Értsük meg ezt részletesebben.

Csomagok telepítése Pythonban

A Python szabványkönyvtár számos hasznos modult tartalmaz az egységteszteléshez, az operációs rendszerrel való interakcióhoz, a dátumok és időpontok kezeléséhez és még sok máshoz.

Ha azonban Python-projekteken dolgozik, gyakran más csomagokat kell telepítenie – amelyeket a Python közösség fejlesztett ki. Ez különösen igaz az olyan alkalmazásokra, mint például a webes adatgyűjtéshez, a gépi tanuláshoz és a webalkalmazásokhoz.

Ezeknek a csomagoknak a telepítéséhez és kezeléséhez használhatja a conda vagy a pip parancsot.

Minden projekthez szükség van egy adott csomagkészletre, amelyet telepítenie kell. Ha azonban a fejlesztői környezet összes csomagját telepíti a helyi gépre, az összes projekt megosztja a globálisan telepített csomagokat.

Akkor ez miért probléma?

Nos, lehet, hogy N csomag van a fejlesztői környezetben. Azonban a projekt, amelyen jelenleg dolgozik, csak 3-at igényelhet. Ha minden projektje közös telepítéssel rendelkezik, nagyon nehéz azonosítani, hogy melyik projektnek melyik telepített csomagra volt szüksége – az egyes projektekhez kapcsolódó függőségekre.

  14 legjobb naplózási alkalmazás a nap összefoglalásához

Ennek a megközelítésnek van egy másik korlátja is. Tegyük fel, hogy van egy Django 2.2 projekt a projektkönyvtárában. Úgy dönt, hogy elkezd dolgozni egy Django 4-et használó projekten. Ezért telepíti a Django legújabb verzióját ugyanabba a fejlesztői környezetbe.

Mi történik a meglévő telepítéssel?

Eltávolítja, és a Django telepített verziójával helyettesíti. Az újabb stabil kiadásoknál előfordulhat, hogy bizonyos funkciók elavultak. Előfordulhat, hogy korábbi Django-projektjei nem a várt módon működnek.

Összegezve az eddigi vitánkat: a függőségek kezelése nehézzé válik, ha a csomagok mindegyike közös környezetben van telepítve, mivel a projektek futtatásához saját könyvtárak szükségesek.

Hogyan működnek a virtuális környezetek

Eddig láttuk a csomagok globális fejlesztői környezetben történő telepítésével kapcsolatos kihívásokat (rendszerszintű telepítések). Ez arra késztet bennünket, hogy megértsük, a virtuális környezetek hogyan kezelik ezt a korlátot.

Amikor létrehoz és aktivál egy virtuális környezetet a Python-projektekhez, csak azokat a csomagokat telepítheti, amelyek az aktuális projekthez szükségesek.

Visszatérve a Django projektek példájára, a virtuális környezetekkel a Django 2.2 és a Django 4 projekteket is futtathatja – konfliktusok nélkül. Ennek az az oka, hogy a Django-telepítések már nem az egész rendszerre kiterjedő telepítések, hanem az adott projektek virtuális környezetére korlátozódnak.

Lényegében: a virtuális környezetek elszigetelt környezetek, amelyek a projekt kódját és függőségeit egyaránt tartalmazzák.

A virtuális környezet előnyei

Most, hogy megtanulta, hogyan működnek a virtuális környezetek Pythonban, soroljuk fel használatuk előnyeit:

  • A virtuális környezetek elszigetelt fejlesztői környezetet biztosítanak az egyes projektekhez, lehetővé téve, hogy csak az adott projekthez szükséges csomagokat telepítsük.
  • Mivel a projektek virtuális környezetei függetlenek és elszigeteltek, a különböző projektek ugyanazon könyvtár különböző verzióit használhatják – a követelményektől függően. A virtuális környezetekkel nem kell aggódnia a rendszerengedélyek miatt a könyvtárak telepítéséhez és a fejlesztői környezet beállításához.
  • Miután telepítette a csomagokat egy virtuális környezetben, rögzítheti a projekt függőségeit a követelmények.txt fájlban. Ez lehetővé teszi a többi fejlesztő számára, hogy replikálja a projekt fejlesztését és környezetét, és egyetlen paranccsal telepítse a szükséges csomagokat.

Eddig megtanulta a virtuális környezetek működését és használatuk előnyeit. Nézzünk meg néhány népszerű eszközt, amelyek segítségével virtuális környezeteket hozhat létre és kezelhet a Pythonban.

  4 Önkiszolgáló webalkalmazás-platformok

#1. Virtualenv

A Virtualenv az egyik széles körben használt eszköz a Python-projektek virtuális környezeteinek létrehozására és kezelésére. A virtualenv funkcióinak egy részhalmaza elérhető a venv csomagban. A virtualenv csomag azonban gyorsabb és bővíthető a venv-hez képest.

#2. Pipenv

A pipnev segítségével a virtualenv virtuális környezeti funkciói és a pip csomagkezelési képességei egyaránt rendelkezésre állnak. A kezeli pipfile-eket használja a projektfüggőségek kezelésére egy virtuális környezetben.

Kipróbálhatja a pipenv-t közvetlenül a böngészőből ezen a Pipenv játszótéren.

#3. Conda

Ha a Python Anaconda disztribúcióját használja fejlesztéshez, akkor a condát csomagkezelésre és virtuális környezetek létrehozására használhatja.

Ha többet szeretne megtudni, tekintse meg ezt az átfogó útmutatót a környezetek conda segítségével történő kezeléséről.

#4. Költészet

A Poetry egy csomagkezelő eszköz, amely lehetővé teszi az összes Python-projekt függőségének kezelését. A Poetry használatának megkezdéséhez telepítenie kell a Python 3.7-es vagy újabb verzióját.

#5. Venv

Mint már említettük, a venv a virtualenv funkcióinak egy részhalmazát kínálja, de azzal az előnnyel jár, hogy a Python 3.3-tól kezdve beépül a Python szabványos könyvtárába.

Könnyen elérhető a Python telepítésével, és nem igényel külső csomagok telepítését. Ebben az oktatóanyagban virtuális környezetek létrehozására és használatára fogjuk használni. ✅

Python virtuális környezet létrehozása Ubuntuban

💬 Az oktatóanyag további részeinek követéséhez telepítenie kell a Python 3 helyi verzióját. Győződjön meg arról, hogy a Python 3.5 vagy újabb verziója fut.

Ez a szakasz felvázolja a virtuális környezetek létrehozásának és aktiválásának lépéseit egy Ubuntu Linux gépen. Ugyanezek a lépések más Linux disztribúciókban is használhatók.

A könnyebb kezelhetőség érdekében hozzunk létre egy projektkönyvtárat és ebbe cd-t; Ebben a könyvtárban hozzuk létre a venv-t.

$ mkdir my_project
$ cd my_project

A Python-projekt virtuális környezetének általános szintaxisa a python3 -m venv . A parancs futtatásakor egy my_env nevű virtuális környezet jön létre az aktuális munkakönyvtárban:

$ python3 -m venv my_env

Csomagok aktiválása és telepítése virtuális környezetben

Miután létrehozta a virtuális környezetet, aktiválhatja azt, és telepítheti a szükséges csomagokat. A virtuális környezet aktiválásához futtassa a következő parancsot:

$ source my_env/bin/activate

Miután aktiválta a virtuális környezetet, futtassa a pip list parancsot a telepített csomagok listájának lekéréséhez:

$ pip list

Eddig még nem telepítettünk csomagot, így minden létrehozott virtuális környezetben látnia kell a setuptool-okat és a pip-et (alapértelmezés szerint telepítve).

  Hogyan és mikor kell használni a Defaultdict-ot a Pythonban?

A pip virtuális környezeten belüli telepítése lehetővé teszi az adott projekthez szükséges csomagok telepítését; ezért van minden projekthez önálló fejlesztői környezet.

Most, hogy aktiválta a virtuális környezetet, a pip segítségével projektspecifikus csomagokat telepíthet benne. Példaként telepítsük a Python kéréseket, az egyik legtöbbet letöltött Python-csomagot, amely számos hasznos funkciót biztosít HTTP-kérések küldéséhez a webes API-kkal való munkához.

$ pip install requests

Amikor telepíti a kéréskönyvtárat, látni fogja, hogy a kéréskönyvtár telepítésre kerül az általa igényelt összes csomaggal együtt.

$ pip list

Használhatja a pip freeze parancsot, és átirányíthatja a kimenetet a követelmények.txt fájlba, az alábbi módon:

$ pip freeze > requirements.txt

Ha megvizsgálja az aktuális projektkönyvtár tartalmát, látni fogja, hogy a követelmények.txt fájl létrejött.

$ ls
# my_env requirements.txt

A projekten végzett munka után a következő parancs futtatásával deaktiválhatja a virtuális környezetet:

$ deactivate

Python virtuális környezet létrehozása a Windows rendszerben

Általában a Linux környezetet részesítik előnyben a fejlesztéshez. Ha Windows rendszerű gépet használ, fontolja meg a Windows alrendszer Linuxhoz (WSL) használatát egy Ubuntu terminálkörnyezet beállításához helyi fejlesztéshez.

Ha Windows gépet használ, használhatja a Windows PowerShellt vagy a Parancssort, és virtuális környezeteket hozhat létre a következő paranccsal:

> python -m venv <path-to-venv>

Virtuális környezet aktiválása

A virtuális környezetek Windows-gépen történő aktiválása eltérő attól függően, hogy a parancssoron vagy a Windows PowerShell-en dolgozik.

Ha a parancssorban van, futtassa a következő parancsot a virtuális környezet aktiválásához:

> <path-to-venv>Scriptsactivate.bat

Alternatív megoldásként, ha Windows PowerShellt használ, a parancs futtatása aktiválja a virtuális környezetet:

> <path-to-venv>ScriptsActivate.ps1

Az összes szükséges csomagot telepítheti a virtuális környezetben.

A virtuális környezetek deaktiválásához futtassa a deaktiválási parancsot – a parancssorban és a Windows PowerShellben egyaránt.

Következtetés

Ebben a cikkben megvitattuk a rendszerszintű telepítések korlátait, és azt, hogy ezek hogyan nehezítik meg a Python-projektek függőségkezelését. A Python virtuális környezetei módot adnak a függőségek jobb kezelésére, miközben elszigetelt fejlesztői környezetet biztosítanak az egyes projektekhez.

A Pythonban a virtuális környezetek létrehozására és kezelésére szolgáló széles körben használt eszközök közül megtanulta a venv használatát – amely a Python szabványos könyvtárába van beépítve virtuális környezetek létrehozására és aktiválására.

A projekt dedikált virtuális környezetén belül a programkönyvtárak projektspecifikus verziói telepíthetők. Ezek a követelmények azután rögzíthetők a követelmények.txt fájlban, amely lehetővé teszi más fejlesztők számára a projektkörnyezet egyszerű replikálását.

Amikor elindítja a következő Python-projektet, ügyeljen arra, hogy virtuális környezeteket használjon a jobb függőségkezelés érdekében. Jó kódolást!🎉