[[oktatas:programozás:python|< Python]]
====== Python virtuális környezet ======
* **Szerző:** Sallai András
* Copyright (c) 2020, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Bevezetés =====
Ez a leírás többféle eszközt tartalmaz virtuális környezet használatára.
===== venv =====
==== Telepítés ====
Debian GNU/Linuxon szükséges telepíteni:
apt install python3-pip
apt install python3-venv
Windows operációs rendszeren a telepített Python tartalmazza a pip és a venv csomagot.
==== Virtuális környezet kezdése ====
python3 -m venv virtenv
A virtenv helyére írhatjuk saját könyvtár nevet is.
Ha elérhető a tree parancs, ellenőrizzük:
tree virtenv
tree -L virtenv
==== Aktiválás ====
Nézzünk bele a virtenv könyvtárba:
$ ls virtenv
$ which python3
Itt a which python-t csak azért futtatjuk, hogy legyen összehasonlítási alapunk a következő parancsoknál.
Aktiváljuk a virtuális környezetet:
$ source virtenv/bin/activate
Ellenőrzés:
(virtenv)$ which python
(virtenv)$ which py
(virtenv)$ pip list
(virtenv)$ echo $PATH
==== Példahasználat ====
Telepítsük például a Django 1.9-s verzióját:
(virtenv)$ pip install Django=1.9
==== Inaktiválás ====
(virtenv)$ deactivate
===== pipenv =====
A pipenv egy csomagkezelő és projekt-kezelő eszköz.
==== Függőségek ====
Python verzió ellenőrzése:
python --version
Legyen minimum 3.x.
A pip parancs ellenőrzése:
pip --version
==== Telepítés ====
pip install --user pipenv
Windowson útvonalba kell tenni:
* C:\Users\janos\AppData\Roaming\Python\Python311\Scripts
==== Csomagok a projektünk számára ====
Ha nem vagyunk a projekt könyvtárában lépjünk be:
cd projekt01
pipenv install requests
A projekt a Pipfile állományban vannak leírva. Itt találjuk a telepített csomagokat is.
A Pipfile.lock fájlba feljegyzsére kerülnek a történések.
==== A telepített csomag használata ====
import requests
response = requests.get('https://httpbin.org/ip')
print('Az IP címe: {0}'.format(response.json()['origin']))
Futtatás:
pipenv run python prog.py
===== A virtualenv =====
A virtualenv egy újabb lehetőség virtuális környezet létrehozására.
==== Telepítés ====
$ pip install virtualenv
Ellenőrzés:
$ python -m virtualenv --version
==== Használat ====
Virtuális környezet létrehozása a projektünkhöz:
$ cd projekt01
$ python -m virtualenv .venv
A virtuális környezet aktiválása:
$ source .venv/bin/activate
Aktiválás Windowson:
> .venv\Scripts\activate
==== Csomagok telepítése ====
(virtenv)$ pip install requests
==== Teszt ====
import requests
response = requests.get('https://httpbin.org/ip')
print('Az IP címe: {0}'.format(response.json()['origin']))
Futtatás:
(virtenv)$ python prog.py
==== Deaktiválás ====
(virtenv)$ deactivate
===== VSCode virtuális környezet =====
Ha van egy projektünk, akkor hozzáadhatunk virtuális környezetet VSCode-ban.
A projekt gyökérkönyvtárában hozzuk létre a virtuális környezet könyvtárát:
python -m venv .venv
A .venv más könyvtárnév is lehet, ez választás kérdése.
Felugró ablak:
We noticed a new environment has been created. Do you
want to select it for the workspace folder?
Source: Python (Extendsion) [Yes] [No] [Do not show again]
Válaszoljunk Yes-el.
A terminál még nincs a virtuális környezetben, így továbbra
sem azt használjuk. A terminált törüljük
(ne csak egyszerűen kikapcsoljuk). Kérjünk egy új terminált.
Ez már a virtuális környezetben fog megnyílni.
A várakozási jel ehhez hasonló kell legyen:
(.venv) PS C:\Users\janos\dev\app01>
A státuszsoron ellenőrizzük, hogy melyik Python verziót
használjuk. A következőt kell lássuk (aktuális verziószámmal):
Python 3.11.0('.venv': venv)
Most már telepíthetünk a virtuális környezetben, és a
Python programjaink is ezt használják.
A virtuális környezet elkészíthető a VSCode parancspaneljén is.
Példaként telepítsük a numpy csomagot (Itt most egy linuxos telepítést látunk):
pip install numpy
Collecting numpy
Downloading numpy-1.26.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)
━━━━━━━━━━━━━━━ 18.3/18.3 MB 9.9 MB/s eta 0:00:00
Installing collected packages: numpy
Successfully installed numpy-1.26.3
===== Forrás =====
* https://docs.python-guide.org/dev/virtualenvs/ (2020)
* https://www.geeksforgeeks.org/create-virtual-environment-using-venv-python/ (2020)