Python 2.5.4 - ImportError: No module named etree.ElementTree
-
28-09-2019 - |
Domanda
Io corro Python 2.5.4 su Windows e continuo a ricevere un errore quando si cerca di importare i moduli elementtree o cElementTree. Il codice è molto semplice (Sto seguendo un 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()
ottengo il messaggio di errore quando l'eseguo dal cmd o ma non quando ho direttamente provo dal interprete Python.
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
Inoltre, ho controllato e il modulo c'è in C: \ Python25 \ Lib \ xml \ eTree
Soluzione
È mancato il linea molto importante nel tutorial
import xml.etree.ElementTree as xml
Questo rende xml.etree.ElementTree ora conosciuta come XML in tutto il modulo.
mi capita di avere python 2.5.4 e ho verificato che lo stesso codice si dispone di opere di cui sopra:
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$
Quindi, controllare e assicurarsi che si sta eseguendo python 2.5.4 e se siete provare a reinstallare. Il problema non è che si tratta di Python 2.5.4 o il vostro codice. E 'qualche problema di installazione, si sta eseguendo una versione diversa di pitone, o c'è qualche altro problema strano.
Altri suggerimenti
Perché il nome originale del file è C: \ xml.py
Cambia il nome del file da qualsiasi altro nome
ho ottenuto lo stesso errore quando report("ImportError: No module named etree.ElementTree")
nominare il file di test come xml.py
. Ed ha fisso quando ho rinominato a qualcos'altro come xmltest.py
.
Ho avuto una situazione divertente, che può o non può essere simile a questo e ho trovato la mia soluzione. Ho creato il mio modulo per l'analisi di file XML. Ho messo in my_project_root/utilities/xml.py
. Quando import xml.etree.ElementTree
o xml.etree
dall'interno di questo modulo che avrei avuto l'errore nel titolo di questo intervento. Si era alla ricerca di per sé, in modo da dentro xml.py si stava tentando di import etree.ElementTree
, e non riusciva a trovare un pacchetto o un modulo denominato etree
. Ho cambiato il nome del mio modulo per xml_parse.py e cancellato my_project_root/utilities/xml.pyc
e ha funzionato perfettamente. Un semplice ricordo di usare cautela con le convenzioni di denominazione del modulo.