AbtPst AbtPst - 1 year ago 88
Python Question

Python Error : ImportError: No module named 'xml.etree'

I am simply trying to parse an XML file

import xml.etree.ElementTree as ET
tree = ET.parse('country_data.xml')
root = tree.getroot()

but this gives me

import xml.etree.ElementTree as ET
ImportError: No module named 'xml.etree'

i am using Python 3.5. I have tried to same code with Python 2.7 and 3.4 but i always get this error. I thought that the XML libraries come as standard. Also, i can see that in my Lib folder

enter image description here

so why cant it pick up the module! I am really confused. Do i have to make some change in an environment variable somewhere?

Please help

Answer Source

Remove the file xml.py or a directory xml with a file __init__.py in it from your current directory and try again. Python will search the current directory first when importing modules. A file named xml.py or a package named xml in the current directory shadows the standard library package with the same name.

As pointed out in a comment by KeshV, you also need to remove the file xml.pyc, if it exists. In Python 2 it will be in the same directory as xml.py. In Python 3 it will be in the sub directory __pycache__. In General, as long as the *.py file is around, you can savely delete the corresponding *.pyc file because Python will re-create it upon import of the *.py file.