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:
So why can't it pick up the module? I am really confused. Do I have to make some change in an environment variable somewhere?
Please help.
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.