19

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 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.

1
  • 1
    never mind, false alarm. my dev package was named xml. i changed the name and now it works Commented Nov 10, 2015 at 15:58

4 Answers 4

47

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.

Sign up to request clarification or add additional context in comments.

8 Comments

i dont have a file of that name
my file is called parse.py
Do you have a sub-directory xml in there?
yes, my package was named xml. now i changed the name and it works :) thanks
also remove xml.pyc , just removing xml.py is not enough
|
16

Your script name is: xml.py?

Change it and it should work.

Comments

5

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

Comments

1

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.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.