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

Your script name is: xml.py?

Change it and it should work.


A local .py file overwrites the pre-defined module. Remove all the files that named xml in the current folder.


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.


In addition to the answers that already point to local Python modules: In case you have added other directories to your path, also make sure to check those for modules called xml.py or packages called xml.

For me that was the issue when calling Sphinx with a conf.py file that added several directories to the path.