Python 2.5.4 - ImportError:没有名为etree.ElementTree的模块

时间:2010-06-18 20:57:30

标签: python import elementtree

我正在Windows上运行Python 2.5.4,并且在尝试导入ElementTree或cElementTree模块时出现错误。代码非常简单(我正在学习教程):

import xml.etree.ElementTree as xml

root = xml.Element('root')
child = xml.Element('child')
root.append(child)
child.attrib['name'] = "Charlie"
file = open("test.xml", 'w')
xml.ElementTree(root).write(file)
file.close()

当我从cmd运行它时收到错误消息,但是当我从Python解释器直接尝试它时,我得到错误消息。

Traceback (most recent call last):  
File "C:\xml.py", line 31, in <module>
  import xml.etree.ElementTree as xml   
File "C:\xml.py", line 31, in <module>
  import xml.etree.ElementTree as xml
ImportError: No module named etree.ElementTree

另外,我检查了C:\ Python25 \ Lib \ xml \ etree

中的模块

4 个答案:

答案 0 :(得分:46)

因为您的原始文件名是 C:\ xml.py

将文件名更改为任何其他名称

答案 1 :(得分:10)

在将测试文件命名为report("ImportError: No module named etree.ElementTree")时,我收到了同样的错误xml.py。当我将其重命名为xmltest.py之类的其他内容时,已修复

答案 2 :(得分:7)

你错过了教程中非常重要的一行

import xml.etree.ElementTree as xml

这使xml.etree.ElementTree现在在整个模块中称为xml。

我碰巧有python 2.5.4并且我已经验证了你上面使用的相同代码:

user@Comp test$ cat test.py 
import xml.etree.ElementTree as xml

root = xml.Element('root')
child = xml.Element('child')
root.append(child)
child.attrib['name'] = "Charlie"
file = open("test.xml", 'w')
xml.ElementTree(root).write(file)
file.close()

user@Comp test$ /usr/bin/python2.5 --version
Python 2.5.4
user@Comp test$ /usr/bin/python2.5 test.py 
user@Comp test$ cat test.xml 
<root><child name="Charlie" /></root>user@Comp test$ 

因此请检查并确保您正在运行python 2.5.4,如果您尝试重新安装。问题不在于它是python 2.5.4或你的代码。这是一些安装问题,你正在运行不同版本的python,或者还有其他一些奇怪的问题。

答案 3 :(得分:5)

我有一个有趣的情况,可能与此相似或不同,并找到了我的解决方案。我创建了自己的模块来解析xml文件。我把它放在my_project_root/utilities/xml.py中。当来自此模块中的import xml.etree.ElementTreexml.etree时,我会在此帖子的标题中收到错误。它本身正在搜索,所以从xml.py中它正在尝试import etree.ElementTree,并且找不到名为etree的包或模块。我将模块的名称更改为xml_parse.py并删除了my_project_root/utilities/xml.pyc,它完美地运行了。简单提醒一下使用模块命名约定时要小心。