Python 2.5.4 - ImportError: нет модуля с именем etree.ElementTree - PullRequest
9 голосов
/ 19 июня 2010

Я использую Python 2.5.4 в Windows и получаю сообщение об ошибке при попытке импортировать модули ElementTree или cElementTree.Код очень прост (я следую учебному пособию):

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

Я получаю сообщение об ошибке, когда запускаю его из cmd или нет, когда напрямую пробую его из интерпретатора 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

Также я проверил, и есть ли модуль в C: \ Python25 \ Lib \ xml \ etree

Ответы [ 4 ]

46 голосов
/ 26 апреля 2012

Поскольку ваше исходное имя файла C: \ xml.py

Измените имя файла на любое другое имя

10 голосов
/ 01 сентября 2012

Я получил ту же ошибку report("ImportError: No module named etree.ElementTree"), когда назвал тестовый файл как xml.py.И он получил исправлено , когда я переименовал его во что-то еще, например xmltest.py.

7 голосов
/ 19 июня 2010

Вы пропустили очень важную строку в учебнике

import xml.etree.ElementTree as xml

Это делает xml.etree.ElementTree теперь известным как xml во всем модуле.

У меня есть Python 2.5.4и я убедился, что работает тот же код, что и у вас выше:

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$ 

Так что проверьте и убедитесь, что вы используете Python 2.5.4 и пытаетесь переустановить его.Проблема не в том, что это Python 2.5.4 или ваш код.Это какая-то проблема с установкой, у вас другая версия Python или другая странная проблема.

5 голосов
/ 18 января 2012

У меня была забавная ситуация, которая может быть, а может и не быть похожей на эту, и нашел свое решение.Я создал свой собственный модуль для разбора XML-файлов.Я положил это в my_project_root/utilities/xml.py.Когда import xml.etree.ElementTree или xml.etree из этого модуля, я получу ошибку в названии этого сообщения.Он искал сам по себе, поэтому из xml.py он пытался import etree.ElementTree и не смог найти пакет или модуль с именем etree.Я изменил имя моего модуля на xml_parse.py и удалил my_project_root/utilities/xml.pyc, и он работал отлично.Простое напоминание об осторожности с соглашениями об именах модулей.

...