Oktatás * Programozás 2 * Szkriptnyelvek * levelezősök Félévek Linkek * kalendárium |
Py3 /
VirtualenvVirtuális környezet használata Python 3.5+ -ben A virtualenv csomag segítségével egy lokális, ún. "virtuális környezetet" tudunk kialakítani. Mire is jó ez? Ha harmadik fél által készített Python csomagot telepítünk fel a " /usr/local/lib/python3.5/dist-packages Ehhez egyrészt adminisztrátori jogok kellenek, ami saját gép esetében nem probléma, de máshol ez gondot jelenthet (pl. egy szerveren, ahol nincs root jogosultságunk). A globális helyre való telepítés további gondokat is okozhat. Tegyük fel, hogy egy projektünk az XY csomag 1.0-s verzióját használja. Kijön az XY csomag 2.0-s verziója, ami viszont visszafelé nem komptaibilis az 1.0-s verzióval. Ha a rendszeren frissítjük az XY csomagot, akkor a projektünk nem fog helyesen működni, mindenféle hibaüzenettel le fog állni. Mi a megoldás? Kialakítunk egy virtuális környezetet, amiben a projektünk az XY csomag 1.0-s verzióját használja. Amikor kijön az XY 2.0, akkor ezt egy új virtuális környezetbe telepítjük fel, ahol le tudjuk tesztelni a projektünkkel. Ha nem megy, abból sincs katasztrófa. Mivel a virtuális környezetek egymástól el vannak szeparálva, ezért az első környezetben gyönyörűen tudjuk használni a projektünket az XY 1.0-val. Telepítés A virtuális környezetek használatához elsőször is telepítsük fel a $ sudo pip3 install virtualenv -U Ha már fent volt a csomag, akkor a Tegyük fel, hogy a #!/usr/bin/env python3 import requests def main(): url = "http://index.hu" r = requests.get(url) print(r.text) ############################################################## if __name__ == "__main__": main() A fenti szkript az Nézzük meg, hogy fent van-e a $ python3 Python 3.5.2 (default, Sep 10 2016, 08:21:44) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import requests Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named requests >>> Nincs fent. De nem esünk kétségbe, hiszen van virtualenv :) Ennek használata:
[venv] ~/python$ $ python3 Python 3.5.2 (default, Sep 10 2016, 08:21:44) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import requests >>> Teljes siker :) Most már a fenti szkriptet is ki lehet próbálni, menni fog. Mikre figyeljünk?
Tipp
virtualenv telepítése Virtualenv telepítése saját gépre vagy saját szerverre:
Kapcsolódó lejátszási lista Javasolt alias-ok: alias venv_init="python3 -m venv .venv" alias venv_freeze="pip freeze --local" alias on="source .venv/bin/activate" alias off="deactivate" |
Blogjaim, hobbi projektjeim * The Ubuntu Incident [ edit ] |