Frage

Ich leite Python 2.5.4 unter Windows aus und erhalte immer wieder einen Fehler, wenn ich versuche, die ElementTree- oder Celementtree -Module zu importieren. Der Code ist sehr einfach (ich folge einem Tutorial):

import xml.etree.ElementTree as xml

root = xml.Element('root')
child = xml.Element('child')
root.append(child)
child.attrib['name'] = "Charlie"
file = open("test.xml", 'w')
xml.ElementTree(root).write(file)
file.close()

Ich erhalte die Fehlermeldung, wenn ich sie vom CMD ausführe oder nicht, wenn ich sie direkt aus dem Python -Interpreter versuche.

Traceback (most recent call last):  
File "C:\xml.py", line 31, in <module>
  import xml.etree.ElementTree as xml   
File "C:\xml.py", line 31, in <module>
  import xml.etree.ElementTree as xml
ImportError: No module named etree.ElementTree

Außerdem habe ich überprüft und das Modul ist in C: python25 lib xml ETREE dort

War es hilfreich?

Lösung

Sie haben die sehr wichtige Linie im Tutorial verpasst

import xml.etree.ElementTree as xml

Dies macht XML.etree.elementtree jetzt als XML im gesamten Modul bekannt.

Ich habe zufällig Python 2.5.4 und ich habe überprüft, ob der gleiche Code, den Sie oben haben, funktioniert:

user@Comp test$ cat test.py 
import xml.etree.ElementTree as xml

root = xml.Element('root')
child = xml.Element('child')
root.append(child)
child.attrib['name'] = "Charlie"
file = open("test.xml", 'w')
xml.ElementTree(root).write(file)
file.close()

user@Comp test$ /usr/bin/python2.5 --version
Python 2.5.4
user@Comp test$ /usr/bin/python2.5 test.py 
user@Comp test$ cat test.xml 
<root><child name="Charlie" /></root>user@Comp test$ 

Überprüfen Sie also und stellen Sie sicher, dass Sie Python 2.5.4 ausführen und wenn Sie versuchen, neu zu installieren. Das Problem ist nicht, dass es Python 2.5.4 oder Ihr Code ist. Es ist ein Installationsproblem, Sie führen eine andere Version von Python aus oder es gibt ein anderes seltsames Problem.

Andere Tipps

Weil Ihr Original -Dateiname lautet C: xml.py

Ändern Sie den Dateinamen in einen anderen Namen

Ich habe den gleichen Fehler bekommen report("ImportError: No module named etree.ElementTree") Bei der Benennung der Testdatei als xml.py. Und es wurde Fest Als ich es in etwas anderes wie umbenannte wie xmltest.py.

Ich hatte eine lustige Situation, die möglicherweise ähnlich ist oder nicht und meine Lösung gefunden hat. Ich habe mein eigenes Modul zum Parsen von XML -Dateien erstellt. Ich stecke es hinein my_project_root/utilities/xml.py. Wann import xml.etree.ElementTree oder xml.etree In diesem Modul würde ich den Fehler im Titel dieses Beitrags erhalten. Es suchte in sich, also versuchte es von innerhalb von xml.py zu import etree.ElementTree, und konnte kein Paket oder Modul namens finden etree. Ich habe den Namen meines Moduls in xml_parse.py geändert und gelöscht my_project_root/utilities/xml.pyc Und es hat perfekt funktioniert. Eine einfache Erinnerung an die Verwendung von Vorsicht mit Modulbenennungskonventionen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top