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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top