Python XML No module named etree.ElementTree

在學習使用Python解析XML的過程中,使用官方文檔https://docs.python.org/2/library/xml.etree.elementtree.html中的例子進行測試,代碼如下:

import xml.etree.ElementTree as ET
tree = ET.parse('/home/huayuan/code/xml.py')
root = tree.getroot()


試着運行,沒想到竟然會報錯:

Traceback (most recent call last):

  File "/home/huayuan/code/xml.py", line 1, in <module>

    import xml.etree.ElementTree as ET

  File "/home/huayuan/code/xml.py", line 1, in <module>

    import xml.etree.ElementTree as ET

ImportError: No module named etree.ElementTree

[Finished in 0.1s with exit code 1]


檢查Python的庫路徑/usr/lib/python2.7/xml/etree,發現xml.etree.Element包是正常的,如下圖:

wKioL1QhiuThkrS3AAClZJ0PNA4158.jpg


看報錯提示是import xml.etree.ElementTree as ET 這一句有問題,於是想盡辦法對它進行不同的修改,結果還是於事無補。


最後只能求助於百度了,搜索了很久,發現網友們好像都挻順利的,幾乎沒人提過有這種情況。


後來,終於在一個不起眼的角落看到了這麼一句話:不要用xml 作爲文件名。


本人正是把代碼文件命名成了xml.py,馬上重命名,再運行。結果還是不行,仔細排查,發現生成的xml.pyc文件還存在,有可能是它造成的影響,刪了重試,終於順利運行。


總結:

        回過頭來看,這個可以說是個低級錯誤,Python引用包的時候應該是先在代碼文件所在的文件夾查找,把文件名命名爲xml.py時,import xml.etree.Element 這一句就在當前文件夾找到了自身源文件,自己寫的xml.py裏面根本就沒有etree.Element這些模塊,當然是要報錯了。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章