2016-11-02 42 views
1

为了便于阅读,我喜欢在Python中使用完整的名称空间。我想知道为什么这不起作用的XML库。我的数字import xml也会导入etree和命名空间中的所有内容。至少这是我注意到其他模块的行为。Python import xml不包含xml.etree.ElementTree

$ ptpython 
>>> import xml 

>>> dir(xml.etree.ElementTree) 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'etree' 
'module' object has no attribute 'etree' 

>>> import xml.etree.ElementTree 

>>> dir(xml.etree.ElementTree) 
['Comment', 'Element', 'ElementPath', 'ElementTree', 'HTML_EMPTY', 'PI',...] 

两个问题:

  1. 这究竟是为什么用XML库?
  2. 有没有办法像import xml那样简单地导入它?
+1

这个答案是相当相关的:http://stackoverflow.com/a/7948672/771848。 – alecxe

回答

2

我图导入xml也会导入etree和命名空间中的所有内容。至少这是我注意到其他模块的行为。

导入程序包不会自动导入该程序包中的子模块。确实,一些包为您提供了方便,但这不是默认行为。在这种情况下,你需要做一些你已经知道的事情:import xml.etree.ElementTree

0

尝试使用from xml.etree import ElementTree这对我有用。