Seite 1 von 1
Problem beim import von xml.dom.minidom
Verfasst: Samstag 24. April 2010, 17:36
von isbn345
Hallo,
ich benutze Python 2.5.4 mit Windows Vista. Bisher hatte ich keine Probleme, Beispielscripts auszuführen. Wenn ich aber versuche, den XML-Parser "minidom" mittels der Anweisung
from xml.dom.minidom import *
zu laden, erhalte ich die Fehlermeldung
"ImportError: No module named dom.minidom"
Mittlerweile habe ich ohne Erfolg alle Variationen des Befehls ausprobiert und auch die sys.path Variable modifiziert. Es hat den Anschein, als würden Module in Unterverzeichnissen nicht gesucht / gefunden.
Es wäre schön, wenn mir jemand helfen könnte.
Verfasst: Samstag 24. April 2010, 17:46
von Hyperion
Die Fehlermeldung passt nicht zur Anweisung!
Zudem sind * import generell eher schlecht.
Als letztes: Muss es denn minidom sein? Wieso nicht die ElementTree-API, ggf. sogar mit dem hervorragenden lxml-Modul?
Verfasst: Samstag 24. April 2010, 18:24
von isbn345
Danke für die prompte Antwort. Es muss durchaus nicht "minidoom" sein. Ich habe lediglich versucht, ein Beispiel aus einem Buch nachzuvollziehen.
Könnte es sein, dass mit der Installation etwas nicht stimmt ?
Verfasst: Samstag 24. April 2010, 18:29
von Hyperion
isbn345 hat geschrieben:Danke für die prompte Antwort. Es muss durchaus nicht "minidoom" sein. Ich habe lediglich versucht, ein Beispiel aus einem Buch nachzuvollziehen.
Ich meinte folgendes:
Code: Alles auswählen
In [3]: from foo.bar import *
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/home/nelson/<ipython console> in <module>()
ImportError: No module named foo.bar
Deine Fehlermeldung passt folglich nicht zum angegebenen import-Statement!
Könnte es sein, dass mit der Installation etwas nicht stimmt ?
Das kann natürlich immer sein. Wie hast Du es denn installiert?
Zumdem: Die aktuelle Version von Python 2.x ist die 2.6.5. Ich würde mal das "alte" Python deinstallieren und das aktuelle aufspielen - ganz unabhängig von der obigen Meldung.
Verfasst: Samstag 24. April 2010, 18:50
von isbn345
Die aktuelle Version 2.6.5 verhält leider ganz genauso.
Ausführlich:
from xml.dom import minidoom
Meldung:
Traceback (most recent call last):
File "C:\Users\isbn345\Documents\Python\xml.py", line 1, in <module>
from xml.dom import minidoom
File "C:\Users\isbn345\Documents\Python\xml.py", line 1, in <module>
from xml.dom import minidoom
ImportError: No module named dom
Installiert habe ich gemäß der Anleitung auf python.org mit Administratorrechten.
LXML habe ich jetzt auch installiert. Das auf der Internetseite enthaltene Script
try:
from lxml import etree
print("running with lxml.etree")
except ImportError:
try:
# Python 2.5
import xml.etree.cElementTree as etree
print("running with cElementTree on Python 2.5+")
except ImportError:
try:
# Python 2.5
import xml.etree.ElementTree as etree
print("running with ElementTree on Python 2.5+")
except ImportError:
try:
# normal cElementTree install
import cElementTree as etree
print("running with cElementTree")
except ImportError:
try:
# normal ElementTree install
import elementtree.ElementTree as etree
print("running with ElementTree")
except ImportError:
print("Failed to import ElementTree from any known place")
liefert die die Fehlermeldung "Failed to import ElementTree from any known place".
Was stimmt nicht ???
Verfasst: Samstag 24. April 2010, 18:59
von Hyperion
isbn345 hat geschrieben:
Was stimmt nicht ???
Du darfst dein Script nicht so nennen, wie ein Modul, das Du importierst!
Zudem heißt es nicht "doom"

Verfasst: Samstag 24. April 2010, 20:30
von lunar
Minidoom ist Doom 3 für Vorschulkinder, oder wie?

Verfasst: Sonntag 25. April 2010, 00:28
von jerch
@lunar: Halt ohne Blut und mit Teletubbies als Endboss
@isbn345: Versuchs mal mit einem 'o' weniger

DOM steht für
Document Object Model und im Falle von minidom für eine
Leichtgewichtversion in Python. Seit der Erfindung der ElementTree-API gelten allerdings die anderen XML-Parser-APIs als altbacken und sind nur noch selten mit Mehrwert einzusetzen (Deine Beispiele sind wohl etwas älter). Die ElementTree-API findest Du unter xml.etree.ElementTree, xml.etree.cElementTree (als schnellere C Variante) oder in Drittpaketen wie
lxml, wobei lxml für größere Sachen durchaus empfehlenswert ist, da es neben dem Geschwindigkeitsvorteil auch noch weitere nette Sachen wie XSLT und XPATH mitbringt.
Verfasst: Sonntag 25. April 2010, 09:36
von isbn345
Danke für die Antworten. Nachdem ich die Scripts umbenannt habe, läuft es problemlos. Peinlicher Anfängerfehler...