Python ElementTree import hiba

+1 vote
asked Apr 7, 2013 in IRF tantárgy by anonymous  
retagged Apr 8, 2013 by micskeiz

A kiadott virtuális linuxos gépen a pythonban nem tudok XML parsert importálni.

Az "import xml.etree.ElementTree" sorra "No module named xml.etree.ElementTree" hibát dob. Próbáltam más mappából futtatni a szkriptet, de ugyanez a gond.
A usr/lib/python mappában megnéztem és ott lennének a szükséges fájlok.

Mi lehet a gond?

2 Answers

+2 votes
answered Apr 7, 2013 by nadudvarigy (68 points)  
selected Apr 8, 2013 by horanyi.gergo
 
Best answer

Sziasztok!

Valamilyen okból kifolyólag nincs alapból telepítve a szükséges Python modul. Adjátok ki a

sudo zypper install python3-xml

parancsot, és telepítsétek fel.
Ezután már működnie kell az "import xml.etree.ElementTree" parancsnak és a többi xml.* modulnak is.

commented Apr 9, 2013 by anonymous  
Ezt a telepitést belekell rakni a scriptbe is, vagy feltételezhetjük, hogy fent van a gépen?
commented Apr 9, 2013 by nadudvarigy (68 points)  
Feltelepíted a gépre, és kommentben jelzed a szkript elején, hogy így és így telepítetted fel. Ebből nem lehet baj. :)
0 votes
answered Apr 7, 2013 by anonymous  

Közben rájöttem, hogy a Python3 nem támogatja, 2-vel tökéletesen működik.

commented Apr 7, 2013 by anonymous  
edited Apr 8, 2013 by horanyi.gergo
Sziasztok,

és a python2-es modulokat hogyan lehet python3-as szkriptben használni?
Nem sikerül sajnos beimportálni xml modult a szkriptembe. Lehet egyáltalán ilyet csinálni?
Mi lehet ilyenkor a jó megoldás, ha nem akar az ember "kézzel" xml-t parse-olni?

Köszönöm!
commented Apr 7, 2013 by nadudvarigy (68 points)  
Python2-es modulokat nem fogsz tudni Python3-ban használni. A szükséges alap modulok mindegyike megtalálható a 3-as verzióban is, és sok 3rd party modulnak van Python3 kompatibilis verziója is, sajnos viszont előfordulhat, hogy olyan eszközt akarsz használni, amit még nem portoltak a 3-as verzióra. Ilyenkor mezei programozónak csak a várakozás marad, hátha valaki portolja.

DE semmi pánik! :) Ez az eset nem fordul elő a HF megoldásához szükséges modulok esetén.

(Ha valamilyen modult tisztán Python2-ben írtak meg (pure python moduls), akkor jó eséllyel a 2to3 nevű eszközzel át lehet portolni a 3-as verzióra. Probléma akkor adódik, ha teljesítmény vagy egyéb okok miatt C/C++-os részeket is tartalmaz, ilyenkor ez a módszer már nem működik a megváltozott belső rendszer miatt.)
...