Oktatás * Programozás 2 * Szkriptnyelvek * levelezősök Félévek Linkek * kalendárium |
Py /
VirtualenvVirtuális környezet használata Python 2.7-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/python2.7/dist-packages /usr/lib/python2.7/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. a shrek szerveren). 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. shrek Az IK hallgatói hozzáférnek a shrek.unideb.hu szerverhez. Felvettem a kapcsolatot a rendszergazdákkal és felrakták nekünk a virtualenv csomagot. Ennek a használatát akkor javaslom, ha a shrek-en olyan Python projektet akarnak futtatni, amiben olyan 3. fél által írt modulokat akarnak haszálni, amik nincsenek felrakva a shrek-re. Példa: Tegyük fel, hogy a requests modult szeretnék használni weboldalak letöltésére. #!/usr/bin/env python import requests def main(): url = "http://index.hu" r = requests.get(url) print r.text ############################################################## if __name__ == "__main__": main() A fenti szkript az index.hu kezdőoldalának a HTML forrását írja ki a képernyőre. Nézzük meg, hogy a shrek-en fent van-e a requests modul: $ python Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) [GCC 4.4.5] on linux2 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)szathmar@shrek:~/python$ python Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) [GCC 4.4.5] on linux2 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:
|
Blogjaim, hobbi projektjeim * The Ubuntu Incident [ edit ] |