Python 2.7.16 - ImportError: нет модуля с именем etree.ElementTree - PullRequest
0 голосов
/ 17 июня 2019

Я делаю сценарий для создания и записи данных в файл XML. Ошибка: нет модуля, нет имени модуля

Я ссылаюсь на эту ссылку на стек, Python 2.5.4 - ImportError: Нет модуля с именем etree.ElementTree . Я ссылаюсь на этот урок, https://stackabuse.com/reading-and-writing-xml-files-in-python/. Я до сих пор не понимаю, в чем заключается решение. Я пытался заменить

"из elementtree import ElementTree"

до

"из xml.etree import ElementTree"

Это все еще не работало.

#!/usr/bin/python
import xml.etree.ElementTree as xml
root = xml.Element("FOLDER")

child = xml.Element("File")

root.append(child)

fn = xml.SubElement(child, "PICTURE")
fn.text = "he32dh32rf43hd23"
md5 = xml.SubElement(child, "CONTENT")
md5.text = "he32dh32rf43hd23"

tree = xml.ElementTree(root)
with open(xml.xml, "w") as fh:
   tree.write(fh)

""» Я ожидаю, что в результате данные будут записаны в XML-файл. Но я получил ошибку, показанную ниже,

  File "./xml.py", line 2, in <module>
    import xml.etree.ElementTree as xml
  File "/root/Desktop/virustotal/testxml/xml.py", line 2, in <module>
    import xml.etree.ElementTree as xml
```ImportError: No module named etree.ElementTree

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

import xml.etree.ElementTree as xml

и убедитесь, что у вас есть файл __init__.py в той же папке, если вы используете свой собственный модуль xml и избегайте конфликта путей.

тогда будет работать.

0 голосов
/ 17 июня 2019
Пакет etree

предоставляется "ElementTree" и "lxml", оба похожи, но сообщается, что ElementTree имеет ошибки в python 2.7 и прекрасно работает в python3.Я вижу, что вы используете Python 2.7, поэтому lxml будет хорошо работать для вас.

попробуйте это

from lxml import etree
from io import StringIO

tree = etree.parse(StringIO(xml_file))
# incase you need to read an XML.

print(tree.getroot())

И StringIO из пакета по умолчанию Python io.StringIO необходим, когда вы передаете файл в него (я имею в виду помещение XML в файл и передачу этого файла в анализатор).Это хорошо, даже если вы передаете XML как большую строку.все операции записи будут одинаковыми для обоих.

...