2010-06-18 17 views
9

Ich führe Python 2.5.4 unter Windows und ich bekomme immer einen Fehler beim Versuch, die Module ElementTree oder cElementTree zu importieren. Der Code ist sehr einfach (I nach einem Tutorial bin):Python 2.5.4 - ImportError: Kein Modul mit dem Namen etree.ElementTree

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() 

erhalte ich die Fehlermeldung, wenn ich es von der cmd laufen oder aber nicht, wenn es es direkt aus dem Python-Interpreter versuchen.

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 

Auch ich überprüft und das Modul gibt es in C: \ Python25 \ Lib \ xml \ etree

+0

Sie erhalten die Fehlermeldung in Ihrem Betreff nicht von der Ausführung des von Ihnen geposteten Codes. Sie würden diese Nachricht von "import etree.ElementTree" erhalten. Wenn Sie nach Hilfe fragen, kopieren Sie Ihren Code und die Trace-Back- & Fehlermeldung, und geben Sie nicht aus dem Speicher ein. –

+0

Sie haben Ihren angezeigten Code geändert, aber es wird immer noch keine Fehlermeldung im Betreff der Frage angezeigt. Tatsächlich scheint es zu funktionieren. Abgesehen davon, dass "Datei" als Variablenname verwendet wird, sieht es OK aus. Hast du noch ein Problem? Wenn ja, was? Wenn nicht, sollten Sie Ihre Frage so bearbeitet haben, dass sie das ursprüngliche Problem widerspiegelt. –

+0

Wenn der Interpreter funktioniert, und cmd nicht, ist es möglich, dass Sie eine alte Version von Python von cmd ausführen? – wisty

Antwort

7

Sie 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 passieren Python haben 2.5.4 und ich überprüft haben, dass der gleiche Code, den Sie oben haben funktioniert:

[email protected] 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() 

[email protected] test$ /usr/bin/python2.5 --version 
Python 2.5.4 
[email protected] test$ /usr/bin/python2.5 test.py 
[email protected] test$ cat test.xml 
<root><child name="Charlie" /></root>[email protected] test$ 

So überprüfen und sicherstellen, dass Sie laufen Python 2.5.4 und wenn Sie versuchen, Neuinstallation. Das Problem ist nicht, dass es Python 2.5.4 oder Ihr Code ist. Es ist ein Installationsproblem, Sie haben eine andere Version von Python oder es gibt ein anderes seltsames Problem.

+0

Danke :) Das ist ein Tippfehler ... aber selbst dann erkennt es das Modul nicht ... – Jen

+0

@Jen: Veröffentlichen Sie den tatsächlichen Code, den Sie ausgeführt haben, das Traceback und die Fehlermeldung. "erkennt das Modul nicht" ist mehrdeutig. –

+0

Danke! Ich habe das elementTree-Paket von effbot.org heruntergeladen und installiert.Es funktioniert jetzt, aber ich habe immer noch keine Ahnung, warum die Originalbibliothek nicht funktionierte ... – Jen

4

Ich hatte eine witzige Situation, die ähnlich sein kann oder nicht und fand meine Lösung. Ich habe mein eigenes Modul zum Parsen von XML-Dateien erstellt. Ich gebe es in my_project_root/utilities/xml.py. Wenn import xml.etree.ElementTree oder xml.etree von innerhalb dieses Moduls ich den Fehler im Titel dieses Beitrags bekommen würde. Es wurde in sich selbst gesucht, also versuchte es innerhalb von xml.py import etree.ElementTree und konnte kein Paket oder Modul namens etree finden. Ich änderte den Namen meines Moduls in xml_parse.py und löschte my_project_root/utilities/xml.pyc und es funktionierte perfekt. Eine einfache Erinnerung an die Vorsicht bei den Modulnamenskonventionen.

44

Weil Ihr ursprünglicher Dateiname ist C: \ xml.py

ändern Sie die Dateinamen zu einem anderen Namen

+16

Oh Gott, der Schmerz. Vergessen Sie auch nicht die "xml.pyc" Datei zu entfernen! – BastiBen

+2

Ich lief gerade genau das gleiche Problem. Es erschien mir logisch, mein Skript xml.py zu benennen, da ich es zum ersten Mal verwenden würde, um die XML-Bibliotheken zum ersten Mal auszuprobieren. Ich habe nicht daran gedacht, dass der Name des Skripts mit dem Python-Namespace verschraubt ist. :) Danke, dass du das bemerkt hast. – odigity

10

ich den gleichen Fehler bekam report("ImportError: No module named etree.ElementTree"), wenn die Testdatei als xml.py benennen. Und es wurde behoben, als ich es in etwas anderes wie xmltest.py umbenannte.

Verwandte Themen