1. 程式人生 > >ImportError: No module named etree.ElementTree問題解決方法

ImportError: No module named etree.ElementTree問題解決方法

再次 手工 沒有 導致 eba pan 刪除 error: ttr

學習python操作xml文檔過程中碰到的ImportError: No module named etree.ElementTree問題,問題現象比較奇怪,做個記錄。

前提條件

1、創建了一個xml文件,文件名為student.xml

2、創建xml.py文件,代碼如下:

import xml.etree.ElementTree as ET

try:
    ET.parse("student.xml")
    print "student.xml ok"
except:
    print "student.xml bad"
    print e

問題現象

執行完一次xml.py文件後再次執行xml.py總是提示ImportError: No module named etree.ElementTree錯誤,手工import xml也是報相同的錯誤。現象如下

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

問題分析

這個現象奇怪的地方在於手工import xml正常來說是和我原來的文件不相幹的,正常來說應該提示如下錯誤

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named xml

開始以為是沒有退出環境的原因,退出重新登錄依然如此。考慮import模塊導入加載的順序。python首先查找當前路徑、然後查找lib目錄、site-packages目錄(Python\Lib\site-packages)和環境變量PYTHONPATH設置的目錄。

這裏,我們就知道是python代碼文件命名的原因,這樣就會導致import首先加載xml.py,從而導致問題發生。所以文件名不能命名為xml.py

問題解決

刪除xml.py所在的目錄下的xml.pyc文件,修改文件名重新執行。

ImportError: No module named etree.ElementTree問題解決方法