2016-11-02 71 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這對我有用。