Python virtuális környezet létrehozása – venv Windows, Linux és macOS alatt
A Python virtuális környezet segítségével minden projekthez külön, elszigetelt Python-környezetet hozhatunk létre. Így az egyes projektek saját könyvtárakat és csomagverziókat használhatnak anélkül, hogy azok összeakadnának egymással.
Ebben az útmutatóban lépésről lépésre megmutatom, hogyan hozhatsz létre és aktiválhatsz projektkörnyezetet a beépített venv modullal Windows, Linux és macOS rendszeren, hogyan telepíthetsz csomagokat, hogyan léphetsz ki a környezetből, és hogyan használhatod ugyanezt PyCharmban.
Mi az a Python virtuális környezet, és miért van rá szükség?
Amikor Pythonban dolgozol, egy projekthez gyakran különböző külső könyvtárakat és csomagokat telepítesz, például a requests, pandas vagy más Python-csomagokat. Ha ezeket minden projekthez ugyanabba a globális Python-környezetbe telepíted, idővel könnyen verzióütközések alakulhatnak ki.
Előfordulhat például, hogy az egyik projekt egy könyvtár régebbi verzióját igényli, míg egy másik projekt már az újabbat használja. Ha minden ugyanabba a Python-telepítésbe kerül, az egyik projekt frissítése akár a másikat is működésképtelenné teheti.
A venv környezet erre ad egyszerű megoldást. Egy különálló környezetet hoz létre az adott projekthez, amely saját telepített csomagokkal és csomagverziókkal rendelkezhet.
A Python beépített venv moduljával néhány paranccsal létrehozhatunk ilyen elszigetelt környezetet. Így minden projekt külön kezelhető, könnyebb karbantartani, és kisebb az esélye annak, hogy a különböző projektek függőségei összeakadnak.
Egyszerűen megfogalmazva: a virtuális környezet olyan, mintha minden Python-projekt saját külön Python-munkaterületet kapna.
A venv modul részletes működéséről a Python hivatalos dokumentációjában is olvashatsz.
Python virtuális környezet létrehozása Windows alatt
Windows alatt a virtuális környezet létrehozását elvégezheted a Parancssorban, a PowerShellben vagy a Windows Terminalban.
Először lépj be abba a mappába, ahol a Python-projekted található.
cd C:\projektek\sajat-projekt
Ezután hozd létre a virtuális környezetet a Python beépített venv moduljával:
python -m venv venv
A parancs végén szereplő második venv a létrehozandó mappa neve. Ezt másképp is elnevezheted, például .venv-nek:
python -m venv .venv
A .venv elnevezés sok projektben gyakori, mert egyértelműen jelzi, hogy a mappa a virtuális környezethez tartozik.
Ha a parancs sikeresen lefutott, a projekt mappájában megjelenik egy új venv vagy .venv könyvtár. Ebben találhatók majd a virtuális környezet saját Python-fájljai és telepített csomagjai.
Python virtuális környezet létrehozása Linux és macOS alatt
Linux és macOS rendszeren a virtuális környezetet a Terminálból hozhatod létre. Először lépj be abba a mappába, ahol a Python-projekted található.
cd ~/projektek/sajat-projekt
Ezután hozd létre a virtuális környezetet a Python venv moduljával:
python3 -m venv venv
Linuxon és macOS-en gyakran a python3 parancs hivatkozik a Python 3 telepítésre, ezért itt ezt használjuk.
A parancs végén szereplő venv a létrehozandó mappa neve. Itt is használhatod helyette a .venv elnevezést:
python3 -m venv .venv
Ha a parancs sikeresen lefutott, a projekt könyvtárában létrejön a venv vagy .venv mappa. Ebben lesz a projekthez tartozó elkülönített Python-környezet és később az ide telepített csomagok is.
Python virtuális környezet aktiválása Windows alatt
A virtuális környezet létrehozása után még aktiválnod is kell azt, mielőtt csomagokat telepítesz vagy futtatod a projektet. Aktiválás után a terminál már a projekt saját Python-környezetét fogja használni.
PowerShell
.\venv\Scripts\Activate.ps1
Majd:
Sikeres aktiválás után a parancssor elején általában megjelenik a környezet neve, például:
(venv) C:\projektek\sajat-projekt>
Parancssor (CMD)
venv\Scripts\activate.bat
.venv\Scripts\activate.bat
Ha az aktiválás sikerült, az ezután futtatott python és pip parancsok már a virtuális környezethez fognak tartozni, nem a rendszer globális Python-telepítéséhez.
Python virtuális környezet aktiválása Linux és macOS alatt
Linux és macOS rendszeren a virtuális környezet aktiválása a Terminálból történik. Ha a környezetet venv néven hoztad létre, futtasd ezt a parancsot:
source venv/bin/activate
Ha .venv mappanevet használsz:
source .venv/bin/activate
Sikeres aktiválás után a terminál elején általában megjelenik a virtuális környezet neve, például:
(venv) user@gep:~/projektek/sajat-projekt$
Ettől a ponttól kezdve a python, python3 és pip parancsok a virtuális környezethez tartozó Python-telepítést és csomagokat fogják használni.
Ez azért fontos, mert így a projekthez telepített könyvtárak nem keverednek a rendszer többi Python-projektjével.
Hogyan ellenőrizheted, hogy tényleg a virtuális környezet aktív?
which python
vagy:
which python3
A kimenetnek a projekted venv vagy .venv mappájára kell mutatnia.
Csomagok telepítése a virtuális környezetbe pip segítségével
Miután aktiváltad a virtuális környezetet, a pip segítségével telepítheted a projekthez szükséges Python-csomagokat. Az így telepített könyvtárak csak ehhez a virtuális környezethez tartoznak, ezért nem keverednek más projektek csomagjaival.
Példa:
pip install requests
Több csomagot egyszerre is telepíthetsz:
pip install requests pandas matplotlib
Hogyan ellenőrizheted a telepített csomagokat?
pip list
A pip list megmutatja, milyen csomagok és verziók vannak telepítve az aktuális virtuális környezetben.
Csomaglista mentése requirements.txt fájlba
Ha szeretnéd később ugyanazt a környezetet újra létrehozni, vagy másnak átadni a projektet, a telepített csomagokat elmentheted egy requirements.txt fájlba:
pip freeze > requirements.txt
A fájlban a csomagok verziói is szerepelnek. Egy másik gépen vagy új virtuális környezetben ezek később egy paranccsal telepíthetők:
pip install -r requirements.txt
Kilépés a Python virtuális környezetből
Ha befejezted a munkát az adott projekten, a virtuális környezetből egyszerűen kiléphetsz a deactivate paranccsal.
deactivate
Ez Windows, Linux és macOS alatt is ugyanígy működik.
Kilépés után a terminál elejéről eltűnik a (venv) vagy (.venv) jelölés, és a rendszer ismét a globális Python-környezetet használja.
Python virtuális környezet törlése
A virtuális környezet törléséhez először lépj ki belőle a deactivate paranccsal, majd töröld a venv vagy .venv mappát.
A virtuális környezet nem tartalmaz pótolhatatlan projektadatokat: ha van requirements.txt fájlod, később bármikor újra létrehozhatod.
Windows CMD:
rmdir /s /q venv
PowerShell:
Remove-Item -Recurse -Force venv
Linux/macOS:
rm -rf venv
Ha .venv mappanevet használsz, természetesen mindenhol azt írd a venv helyére.
Ez különösen hasznos akkor, ha a virtuális környezet megsérült, rossz csomagverziók kerültek bele, vagy egyszerűen tiszta környezetből szeretnéd újrakezdeni a projektet.
Python virtuális környezet használata PyCharmban
A PyCharm képes automatikusan létrehozni és kezelni a Python környezeteket, ezért nem feltétlenül kell minden esetben kézzel, terminálból beállítanod őket.
Új projekt létrehozásakor a PyCharm felajánlja, hogy külön virtuális környezetet hozzon létre a projekthez. Ez kezdőként kényelmes és biztonságos megoldás.
- Nyisd meg vagy hozd létre a projektet a PyCharmban.
- Menj a Settings / Preferences menübe.
- Nyisd meg a Project → Python Interpreter részt.
- Válassz ki egy meglévő venv vagy .venv környezetet, vagy hozz létre újat.
- Ellenőrizd, hogy a kiválasztott interpreter valóban a projekt saját virtuális környezetére mutat.
Ha a PyCharm terminálját használod, a program sok esetben automatikusan aktiválja a projekthez tartozó virtuális környezetet. Ilyenkor a terminál elején megjelenhet például a (venv) vagy (.venv) jelölés.
Ha azt látod, hogy a PyCharm más Python-interpretert használ, mint amit a projektedhez létrehoztál, érdemes ezt ellenőrizni, mert különben előfordulhat, hogy a telepített csomagokat nem találja a program.
Gyakori hibák Python virtuális környezet használatakor
Az elkülönített környezet használata alapvetően egyszerű, de néhány gyakori hiba könnyen megakaszthatja a munkát. Az alábbi problémák különösen Windows, Linux és macOS rendszeren fordulnak elő.
1. A python vagy python3 parancs nem található
Ha a terminál azt jelzi, hogy a python vagy python3 parancs nem található, akkor valószínűleg a Python nincs megfelelően telepítve, vagy nincs hozzáadva a rendszer PATH környezeti változójához.
Először ellenőrizd a Python verzióját:
python --version
vagy Linux/macOS alatt:
python3 --version
Ha egyik parancs sem működik, először a Python telepítését kell rendezni.
2. PowerShell alatt nem indul el az aktiválás
Windows PowerShellben előfordulhat, hogy az aktiváló szkript futtatását a rendszer biztonsági beállítása blokkolja. Ilyenkor például olyan hibaüzenetet kaphatsz, amely szerint a szkriptek futtatása le van tiltva.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Ez csak az aktuális PowerShell munkamenetre érvényes. Ezután próbáld meg újra az aktiválást:
.\venv\Scripts\Activate.ps1
3. Linuxon hiányzik a venv modul
Egyes Linux-disztribúciókon előfordulhat, hogy a venv modul nincs alapból telepítve. Debian és Ubuntu alapú rendszereken ilyenkor általában külön kell telepíteni.
sudo apt update
sudo apt install python3-venv
Ezután újra futtathatod:
python3 -m venv venv
4. A pip nem a megfelelő környezetbe telepít
Ha egy csomagot telepítettél, de a program mégsem találja, lehet, hogy a pip nem az aktív virtuális környezethez tartozik.
Ellenőrzés:
Windows:
where python
where pip
Linux/macOS:
which python
which pip
Az útvonalnak a projekt venv vagy .venv mappájára kell mutatnia.
python -m pip install requests
python3 -m pip install requests
5. Elfelejtetted aktiválni a virtuális környezetet
Gyakori hiba, hogy a környezet létrejött, de a felhasználó csomagtelepítés vagy programfuttatás előtt nem aktiválja.
Ha a terminál elején nem látsz (venv) vagy (.venv) jelölést, ellenőrizd, hogy valóban az adott virtuális környezet aktív-e.
6. A PyCharm rossz Python interpretert használ
Előfordulhat, hogy a terminálban minden működik, a PyCharm mégsem talál egy telepített csomagot. Ilyenkor gyakran az a probléma, hogy a PyCharm másik Python interpretert használ.
Ellenőrizd a projekt beállításainál, hogy a Python interpreter a megfelelő venv vagy .venv mappára mutat-e.
7. A virtuális környezetet átmásoltad egy másik gépre
A venv mappát általában nem érdemes egyik számítógépről a másikra másolni. A virtuális környezet rendszerfüggő útvonalakat és fájlokat is tartalmazhat.
Jobb megoldás, ha a projekt mellé elmented a requirements.txt fájlt, majd az új gépen létrehozol egy új virtuális környezetet és újratelepíted a szükséges csomagokat.
pip install -r requirements.txt
Ha a virtuális környezet nagyon összekeveredett vagy sérült, sokszor gyorsabb törölni a venv mappát, létrehozni egy újat, majd a requirements.txt segítségével újratelepíteni a csomagokat.
.venv vagy venv – melyiket érdemes használni?
A virtuális környezet mappájának neve tetszőleges lehet, de a gyakorlatban leggyakrabban a venv és a .venv elnevezéssel találkozhatsz.
Technikai szempontból nincs lényeges különbség közöttük: mindkettő ugyanúgy használható Python-környezetként.
venv
A venv egyszerű és kezdőbarát elnevezés. Jól látható a projekt mappájában, ezért könnyű felismerni.
Példa:
python -m venv venv
.venv
A .venv szintén nagyon elterjedt megoldás. Linux és macOS rendszeren a ponttal kezdődő fájlok és mappák rejtettnek számítanak, ezért kevésbé zavarják a projekt könyvtárszerkezetét. Sok fejlesztőeszköz és IDE is könnyen felismeri ezt az elnevezést.
Példa:
python -m venv .venv
A virtuális környezetet ne töltsd fel GitHubra
A venv vagy .venv mappa sok gép- és rendszerfüggő fájlt tartalmaz, ezért általában nem érdemes Git-re feltölteni.
Ehelyett add hozzá a .gitignore fájlhoz:
venv/
.venv esetén:
.venv/
A projekthez szükséges csomagokat inkább a requirements.txt fájlban tárold, így másik gépen könnyen újra létrehozható ugyanaz a környezet.
Összefoglalás
A Python virtuális környezet használata az egyik legalapvetőbb fejlesztői gyakorlat. Segítségével minden projekt saját csomagokat és verziókat használhat anélkül, hogy azok más Python-projektekkel összeakadnának.
A beépített venv modullal Windows, Linux és macOS alatt is néhány paranccsal létrehozhatsz külön környezetet, aktiválhatod azt, telepítheted a szükséges csomagokat, majd a munka végén egyszerűen kiléphetsz belőle.
Ha pedig a projektet később másik gépen szeretnéd folytatni, a requirements.txt segítségével a szükséges csomagok könnyen újratelepíthetők.
Mészáros Csaba
Alapító · Python Project
„Pythonban gondolkodni – lépésről lépésre.”
💡 Innen hogyan érdemes továbbhaladnod?
A virtuális környezet használata elsőre egy újabb technikai lépésnek tűnhet, valójában azonban nagyon gyorsan a Python-fejlesztés természetes részévé válik.
Ha már létre tudsz hozni és aktiválni egy venv környezetet, tudsz csomagokat telepíteni a pip segítségével, és érted, mire szolgál a requirements.txt, akkor már sokkal rendezettebben és biztonságosabban tudsz saját Python-projekteken dolgozni.
A Python Start tréningben az alapoktól haladunk tovább, lépésről lépésre:
✓ rövid, érthető videóleckékkel
✓ gyakorlati Python-feladatokkal
✓ megoldásokkal és magyarázatokkal
✓ fokozatosan felépített tananyaggal
👉 Ha még csak most ismerkedsz a Pythonnal, kezdd az ingyenes mini-kurzussal. Ha már szeretnél strukturáltan továbbhaladni, többet gyakorolni és biztosabb Python-alapokat építeni, nézd meg a Python Start tréninget.
Videók + feladatok + megoldások + garancia:
Kezdőknek – rövid leckék, mini feladatok e-mailben: