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. 👩🏽💻
Tartalomjegyzék
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.
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.
#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
$ 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).
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!🎉